php简单应用之登录注册交互
在进行了简单的学习后,下面用一个列子让我们更深入的了解php的学习,其中就是最简单的模型登录注册方式,我们先看看项目的目录结构如下:
结构图其中.idea应该是编译后产生的文件,主体中分为admin文件夹,里面包含了字体和php类,在public中我们选择存放了img,css等样式文件和相关的web布局.
一:我们先看注册效果图:
注册图我们先注册一个Name为123;email=122@qq.com,密码为111111的用户.
成功图下面就来看看数据库中是否已经注册成功:
数据库显然是成功了,然后继续看实现的逻辑类,这里我们不看每个字段的校验规则,主要先看数据库连接配置:
连接数据库 这里配置mysql的连接和指定数据库名称private$username;
private$db;
private$email;
private$pwd;
private$con;
private$code;
这写填写的值可以通过$_POST来获取
$this->username=$_POST['username'];
在插入数据时候先判断该用户是否已经被注册过了,判断代码:
$sql="SELECTcount(*) FROM users WHERE username = '".$this->username."'";
$count=mysqli_fetch_row($this->db->query($sql))[0];
if($count) {
echo"1";
}else{
echo"0";
}
然后插入数据实现注册:
$sql="INSERT INTO users (username, email, password) VALUES ('".$this->username."','".$this->email."','".$this->pwd."')";
$result=$this->db->query($sql);
if($result) {
$this->db->close();
echo"alert('Successful registration, please log in!');location.href= '/';";
exit();
}else{
echo$this->db->error;
exit();
}
二:登录效果图:
登录效果图点击登录后:
提示这个时候提示用户名或者密码错误,不慌,我们可以断点看看为啥原因,下面说说如何设置断点调试.
1:火狐浏览器+
debug扩展工具2:配置xdebug
3:配置service映射文件
配置好后我们run debug,浏览器中也选中debug,
这里一定要开启监听运行后进入断点:
断点图这里我们可以看到转化后的密码为:96e79218965eb72c92a549dd5a330112
而我们数据库中的密码为:96e7921896所以导致了密码不匹配的提示
这里我们用截取字符串的方式来截取前10位保证与数据库一样,修改代码如下:
if ($strlen < 6 || $strlen > 20) {
echo "alert('Password length of illegal.please try again!');history.go(-1);";
exit();
} else {
//这里数据库存的前10位
$newpwd = substr(md5($this->password), 0, 10);
$this->password =$newpwd;
}
然后再次运行就可以了,效果图:
登录成功三:提交表单的部分,php中可以直接$_POST获取到name中指定的值
我们来看下提交登录时候做了什么操作:
<form action="admin/Login.php" method="post" accept-charset="utf-8" class="form-horizontal" >
........
........
<button type="submit" class="btn btn-primary" name="login">Login</button>
后续补上git地址,欢迎大家star,持续更新中...
https://github.com/JianhuaWan/php/tree/master/register_login