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

  • 相关阅读:
    xshell中的nohup与&的含义
    eclipse启动服务报错:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    关于MyEclipse启动报错:Error starting static Resources;下面伴随Failed to start component [StandardServer[8005]]; A child container failed during start.的错误提示解决办法.
    组件/服务之间的通信-事件广播和订阅可以有效减少全局变量
    #css3# 可以多背景图设置
    #RXJS# 基础
    #TS# get/set
    #css3# : vs ::
    #css3# box-sizing
    #DOM# 最佳实践:head里面标签的顺序
  • 原文地址:https://www.cnblogs.com/skyblue-li/p/9155007.html
Copyright © 2011-2022 走看看