php简单应用之登录注册交互

2017-10-18  本文已影响0人  茴香豆的第五种写法

在进行了简单的学习后,下面用一个列子让我们更深入的了解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

上一篇下一篇

猜你喜欢

热点阅读