zoukankan      html  css  js  c++  java
  • 【php增删改查实例】第十八节

    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:xampphtdocs5-7login

    打开浏览器,访问地址: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

  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/skyblue-li/p/9155007.html
Copyright © 2011-2022 走看看