1.对用户名和密码进行非空判断(后台验证)

    $username;
$password; if(isset($_POST['username']) && $_POST['username'] != null){
$username = $_POST['username'];
}else{
echo "<h2 style='color:red'>用户名不能为空!</h2>";
return;
} if(isset($_POST['password']) && $_POST['password'] != null){
$password = md5($_POST['password']);
}else{
echo "<h2 style='color:red'>密码不能为空!</h2>";
return;
}

2. 进行数据库链接

$conn = mysql_connect("localhost","root","");
$db = mysql_select_db("test",$conn);
mysql_query("set names utf8");
  1. 根据用户名和密码进行用户表的查询,如果用户存在,那么查询出来的数量肯定等于1,否则,认为用户名和密码错误。还有一种情况,就是单单根据用户名去查,如果查不到这个用户名,就提示用户用户名不存在。
$sql = "select count(*) as total from tm_users where username = '$username'";

	$rs = mysql_query($sql);

	while($row = mysql_fetch_array($rs)){
if($row["total"] != 1){
echo "<h2 style='color:red'>该用户名不存在!</h2>";
return;
}
} $sql = "select count(*) as total from tm_users where username = '$username' and password = '$password'"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){
if($row["total"] != 1){
echo "<h2 style='color:red'>用户名或者密码错误!</h2>";
return;
}
} echo "<h2 style='color:green'>恭喜,登录成功!</h2>";
  1. 异步登陆

    在上一节中,我们使用的是form表单提交的方式,也就是俗称的同步登陆。这样一来,如果后台不返回数据,那么用户什么都做不了。现在,我们使用sleep函数来模拟后台执行时间过长的问题。
sleep(5000);



如果因为网络等问题,后台处理请求的时间过长,用户除了等待,什么事情也做不了。这个就是同步提交的一个弊端。



如图所示,同步就类似于打电话,如果对方不接,打电话的那个人只能一直等待,不想等了,就把电话挂了。如果是异步的方式,就好比两个人发短信,你什么时候回复,我就什么时候看,不会影响我当期所做的任何事情。

现在来演示异步提交。

16.1 把login2.html 拷贝到这个目录:

C:\xampp\htdocs\5-7\login

打开浏览器,访问地址:http://localhost:8080/5-7/login/login2.html



用户名和密码的非空判断,在前台JS中也有处理。如果用户名和密码都不为空,那么就会进行异步提交,异步提交采用的是ajax方法,在第281行:

16.2 编写login2.php

先进行一下登录成功的测试:

<?php
$resultData = array();
$resultData["errCode"] = 0;
$resultData["errMsg"] = ""; echo json_encode($resultData); ?>

啥也不干,直接返回没有错误的结果对象,然后login2.html就会进入success方法:



这边还做了一个小修改,当登录成功的时候,就去访问main.html。

16.3 后台非空判断

//后台判断用户名和密码是否为空
$username;
$password; if(isset($_POST['account']) && $_POST['account'] != null){
$username = $_POST['account'];
}else{
$resultData["errCode"] = -1;
$resultData["errMsg"] = "用户名不能为空!";
echo json_encode($resultData);
return;
} if(isset($_POST['password']) && $_POST['password'] != null){
$password = md5($_POST['password']);
}else{
$resultData["errCode"] = -1;
$resultData["errMsg"] = "密码不能为空!";
echo json_encode($resultData);
return;
}

16.4 验证用户名是否存在?

	//验证用户名是否存在?
$sql = "select count(*) as total from tm_users where username = '$username'"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){
if($row["total"] != 1){
$resultData["errCode"] = -1;
$resultData["errMsg"] = "该用户名不存在!";
echo json_encode($resultData);
return;
}
}

16.5 验证用户名和密码是否正确?

//验证用户名和密码是否正确?
$sql = "select count(*) as total from tm_users where username = '$username' and password = '$password'"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){
if($row["total"] != 1){
$resultData["errCode"] = -1;
$resultData["errMsg"] = "用户名或者密码错误!";
echo json_encode($resultData);
return;
}
}

源码获取:https://www.jianshu.com/p/4977bd0073d5

最新文章

  1. Mysql FROM_UNIXTIME效率 VS PHP date()效率 数据说话!
  2. VirtualBox上搭建Ubuntu开发环境
  3. ButterKnife--View注入框架的使用
  4. docker-9 supervisord 参考docker从入门到实战
  5. Visual Studio 的代码片段工具
  6. 学习日志 - Openwrt安装python然后wallproxy
  7. AFNetWorking支持解析html的方法
  8. POJ 2387 Til the Cows Come Home (最短路 dijkstra)
  9. BZOJ 1692: [Usaco2007 Dec]队列变换
  10. android后台截屏实现(2)--screencap源码修改
  11. css复合属性的写法
  12. SSL/TLS原理详解
  13. TCP四次挥手
  14. 网站运维工具使用iis日志分析工具分析iis日志(iis日志的配置)
  15. console报错类型
  16. 在tomcat下部署两个或多个项目时 log4j和web.xml配置webAppRootKey 的问题(转)
  17. laravel——ajax分页&amp;删除&amp;搜索
  18. Spark算子代码实践
  19. jQuery 常用的方法
  20. canvas-star1.html

热门文章

  1. 给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手
  2. JAVA学习笔记:注释、变量的声明和定义、
  3. 03-14_WLST配置现有的Domain
  4. python第七十九天--第十四周作业
  5. python第四天 三级菜单新思路
  6. 合理配置SQLSERVER内存
  7. C#操作Exchange配置
  8. 如何用vmware workstation来做虚拟化实验
  9. WCF REST模式下的UriTemplate路径问题
  10. table表格(笔记)