前言:唯星宠物产品官网的登录注册,单独一个子页,页面使用BootStrap实现响应式,PHP提供服务端,利用Ajax技术,从Mysql中获取JSON数据,并对表单信息进行正则验证。项目github地址:https://github.com/66Web/ljq_weixin.git


一、登录注册响应式界面

思路:使用BootStrap自带面板组件

  • 面板上有标题,下有内部,是可以呈现头部 主体 尾部结构的组件
  • 关键类 ↓
  1. panel  必写   panel-title可选   panel-primary可选
  2. panel-body  主体内容
  3. panel-footer   脚注内容
  • 关键代码 ↓
<li class="active" data-toggle="tab">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">登录</a>
<div class="dropdown-menu panel1">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-horizontal">
<span class="title">欢迎登录</span>
<div class="form-group">
<input type="text" class="form-control" placeholder="用户名" id="inputUser" name="inputUser"/>
</div>
<div class="form-group">
<input type="password" class="form-control" id="inputPwd" placeholder="密码" name="inputPwd"/>
</div>
<p class="alert1"></p>
<span id="msgone"></span>
<input type="button" class="btn btn-default btn1" value="登录"/>
</div>
</div>
</div>
</li>
二、数据库创建用户表

CREATE DATABASE weixin CHARSET=UTF8;
USE weixin; #用户表
CREATE TABLE wxuser(
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(30),
upwd VARCHAR(30)
);
SET NAMES GBK;
INSERT INTO wxuser VALUES(null,'','');
SELECT*FROM wxuser;
三、登录注册php操作数据库


思路:
php  mysql  查询

  • 连接数据库,设置查询编码  utf8 →  init.php
  1. $conn=mysqli_connect("127.0.0.1","root","","weixin",3306);
  2. mysqli_query($conn,"SET NAMES UTF8");
  • 创建一条查询的SQL,并且发送sql
  1. 登录  查询语句 → $sql="SELECT * FROM wxuser WHERE uname='$uname' AND upwd='$upwd'";
  2. 注册  插入语句 →  $sql="INSERT INTO wxuser VALUES(null,'$uname','$upwd')";
  • 获取返回结果   注意 ↓
  1. 返回结果$result  不再是true/false
  2. $result  结果集对象(查几条记录/查几列)
  3. 如果需要获取最终数据结果,再一次操作  →  抓取
  • 抓取结果集中内容并转换数组
  1. $row = mysqli_fetch_assoc($result);   抓取一行记录(转关联数组)
  2. $rows = mysqli_fetch_all($result,MYSQLI_ASSOC);  抓取多行记录
  • 完整php连接数据库获取信息代码  ↓
//init.php
<?php
header("Content-Type:application/json;charset=utf-8");
$conn=mysqli_connect("127.0.0.1","root","","weixin",3306);
mysqli_query($conn,"SET NAMES UTF8");
?>
//login.php
<?php
require("init.php");
@$uname= $_REQUEST["uname"] or die('{"code":-1,"msg":"用户名是必须的"}');
@$upwd=$_REQUEST["upwd"]or die('{"code":-2,"msg":"密码是必须的"}');
$sql="SELECT * FROM wxuser WHERE uname='$uname' AND upwd='$upwd'";
$result=mysqli_query($conn,$sql);
$row=mysqli_fetch_assoc($result);
if($row===null){
echo '{"code":-3,"msg":"用户名或密码有误"}';
}else{
$uid = $row['uid'];
echo '{"code":1,"msg":"登录正确","uid":'.$uid.'}';
}
?>
//register.php
<?php
require("init.php");
@$uname=$_REQUEST["uname"] or die("用户名输入错误");
@$upwd=$_REQUEST["upwd"] or die("密码输入错误");
$sql="INSERT INTO wxuser VALUES(null,'$uname','$upwd')";
$result=mysqli_query($conn,$sql);
if($result==false){
echo "注册失败!";
}else{
echo "注册成功,请返回登录";
}
?>
四、正则验证表单提交内容

 

思路:使用正则表达式对象

  • 字符集
  1. [A-Za-z0-9]                 1位字符
  2. [^xxx]                           除了xxx都行
  3. \d  →  [0-9]                 1位数字
  4. \w →  [A-Za-z0-9]       1位字母、数字、_下划线
  5. \s                                1位空字符(空格、换行、Tab)
  6. .                                  除回车、换行外的所有字符
  • 量词
  1. {n,m}   字符集可出现至少n次,最多m次
  2. {n,}   字符集可出现至少n次,多了不限
  3. {n}       字符集必须出现n次
  4.           可有可无,最多1次
  5. *             可有可无,多了不限
  6. +            至少一次,多了不限
  • 分组和选择
  1. 多个字符集()    包为一组 → 为了使用同一个量词,同时修饰
  2. 规则1  |  规则2      满足其一即可
  3. \         与js冲突时,使用转义字符
  • 指定匹配位置
  1.  ^         字符串开始位置
  2. $         字符串结尾位置
  3. ?       预判,表示如果
  4.  ?!   预判,如果不
  • 登录表单输入内容正则验证完整代码(注册同登录一样)  ↓
//登录表单正则验证
(()=>{
var txtName1 = document.getElementById("inputUser");
var txtPwd1 = document.getElementById("inputPwd");
txtName1.onfocus=function(){
this.placeholder="请输入手机号";
this.style.border="1px solid #a99269"
};
txtPwd1.onfocus=function(){
this.placeholder="请输入你的密码";
this.style.border="1px solid #a99269"
};
txtName1.onblur=function(){
vertify(/^(\+86|0086)?\s*1[34578]\d{9}$/,this);
};
txtPwd1.onblur=function(){
vertify(/^\w{6,14}$/,this);
};
function vertify(reg,txt){
if(reg.test(txt.value)){
txt.placeholder="";
msgone.innerHTML="";
}else{
txt.value="";
msgone.innerHTML="请输入正确格式";
$("#msgone").css({
color:"red"
});
txt.style.border="2px solid red"
}
}
})();

版权声明:本文原创,非本人允许不得转载

【唯星宠物】——BootStrap/Mysql/PHP/Ajax爬坑之正则验证登录注册子页的更多相关文章

  1. 【京东账户】——Mysql/PHP/Ajax爬坑之页头页尾加载

    一.引言 实现京东的账户项目,有一个小功能,页头页尾加载.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.实现 原理: 用php文件分别写一个的页头和一个页尾,放在前后两个div里. ...

  2. 【京东账户】——Mysql/PHP/Ajax爬坑之产品列表显示

    一.引言 实现京东的账户项目,功能模块之一,产品列表显示.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.依据功能创建库.表.记录 创建库:jd 创建表:产品表 添加多条记录 /**产 ...

  3. 【京东账户】——Mysql/PHP/Ajax爬坑之用户登录

    一.引言 实现京东的账户项目,功能模块之一,用户登录.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.依据功能创建库.表.记录 创建库:jd 创建表:登录表 添加三条记录 CREATE ...

  4. 【京东账户】——Mysql/PHP/Ajax爬坑之添加购物车

    一.引言 做京东账户项目中的购物车模块,功能之一就是添加购物车.要用到的是Apach环境,Mysql.PHP以及Ajax. 预计效果:用户点击->"加入购物车"  添加成功 ...

  5. 【京东账户】——Mysql/PHP/Ajax爬坑之购物车列表显示

    一.引言 做京东账户项目中的购物车模块,功能之二是购物车列表显示.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.小功能-点击“去购物车结算” 小坑:Ajax动态生成的不能直接绑定,因 ...

  6. 【京东账户】——Mysql/PHP/Ajax爬坑之购物车列表分页

    一.引言 做京东账户项目中的购物车模块,功能之四就是购物车列表的分页显示.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.查询数据 mysql: SELECT * FROM jd_pr ...

  7. 【京东账户】——Mysql/PHP/Ajax爬坑之购物车删除选项

    一.引言 做京东账户项目中的购物车模块,功能之三就是删除购物车中的选项.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.依据功能创建库.表.记录 创建库:jd 创建表:购物车表  jd ...

  8. 【唯星宠物】——CSS/BootStrap/Jquery爬坑之响应式首页

    前言:唯星宠物产品官网,分为首页.子页和登录注册页三个页面,除网页内容设计与图片素材的部分使用网上的材料之外,其余内容呈现以及功能模块全部为自己重构. 一.响应式轮播banner 思路:使用BootS ...

  9. 【京东个人中心】——Nodejs/Ajax/HTML5/Mysql爬坑之注册与登录监听

    一.引言 在数据库和静态页面都创建好之后,下面就该接着完成后台Node.js监听注册和登录的部分了.这个部分主要使用的技术是:Node.js的Express框架和ajax异步请求.登录和注册的代码实现 ...

随机推荐

  1. 【bzoj3687】简单题 背包dp+STL-bitset

    题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和.目前为止,小呆已经解决了前三个问题 ...

  2. 在Visual studio 2010中为C#的“///”注释内容生成XML文档 .

    实际上该方法适合于所有版本的Visual studio,方法很简单,设置一下Visual studio的项目属性和工具选项即可. 1.在菜单栏的“Project”中选择当前项目的“*** Proper ...

  3. HDU 1811 Rank of Tetris(并查集按秩合并+拓扑排序)

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  4. Linux系统——访问U-BOOT环境变量

    Linux系统下访问U-BOOT环境变量 移植过U-BOOT的人,都知道:在U-BOOT中存有ENV.但U-BOOT在引导内核启动之后,U-BOOT的生命周期就结束了.那么启动LINUX内核之后,U- ...

  5. swiper单屏滚动

    .swiper-slide { overflow: auto; } 1. 排除某些屏,不滚动 var startScroll, touchStart, touchCurrent; var aSlide ...

  6. webstorm卡顿

    http://blog.csdn.net/qq673318522/article/details/50583831 http://www.xiaobai8.com/Blog/1000.html

  7. [BZOJ]5018: [Snoi2017]英雄联盟 DP

    [Snoi2017]英雄联盟 Time Limit: 15 Sec  Memory Limit: 512 MBSubmit: 270  Solved: 139[Submit][Status][Disc ...

  8. linux下常用的日志分析命令【转】

    形如下面这样的access.log日志内容: 211.123.23.133 – - [10/Dec/2010:09:31:17 +0800] “GET /query/trendxml/district ...

  9. poj 3254 Corn Fields 状压dp入门

    题目链接 题意 在\(M\times N\)的\(0,1\)格子上放东西,只有标记为\(1\)的格子可以放东西,且相邻的格子不能同时放东西.问有多少种放法. 思路 参考:swallowblank. \ ...

  10. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---33

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: