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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,872评论 3 64
  • 1、判断一个变量是否存在的函数:isset判断一个变量是否为null的函数:is_null判断一个变量是否为空的函...
    jianghu000阅读 1,757评论 1 4
  • Web安全简史 在Web1.0时代,人们更多是关注服务器端动态脚本语言的安全问题,比如将一个可执行脚本(俗称Web...
    潘良虎阅读 3,959评论 3 72
  • 清晨打着惺忪的睡眼,被晨读的铃声给催响…… 我等啊等,我等啊等!我想大概有不少的小伙伴跟我一样的着急,等啊等,等啊...
    独怜幽竹阅读 318评论 2 5