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

【php增删改查实例】第十八节 - login.php编写的更多相关文章

  1. 【php增删改查实例】第八节 - 部门管理模块(编写PHP程序)

    首先,在同级目录新建一个query.php文件: 接着,去刷新页面,打开F12,NetWork,看看当前的请求能不能走到对应的php文件? 这就说明datagrid确实能够访问到query.php 只 ...

  2. python链接oracle数据库以及数据库的增删改查实例

    初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...

  3. java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)

    1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  4. yii2.0增删改查实例讲解

    yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...

  5. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  6. 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具

    本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...

  7. Maven多模块项目+MVC框架+AJAX技术+layui分页对数据库增删改查实例

    昨天刚入门Maven多模块项目,所以简单写了一个小测试,就是对数据库单表的增删改查,例子比较综合,写得哪里不妥还望大神赐教,感谢! 首先看一下项目结构: 可以看到,一个项目MavenEmployee里 ...

  8. 【php增删改查实例】第十节 - 部门管理模块(新增功能)

    正常情况下,在一个部门管理页面,不仅仅需要展示列表数据,还需要基本的增删改操作,所以,我们先把之前写好的新增功能集成进来. 在toolbar中,添加一个新增按钮. <div id="t ...

  9. 关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

    PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","",& ...

随机推荐

  1. Android View体系(二)实现View滑动的六种方法

    1.View的滑动简介 View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动的处理.其实不管是那种滑动的方式基本思想都是类似的:当触摸事件传到View时,系统 ...

  2. (网页)JS中的小技巧,但十分的实用!

    转自CSDN: 1.document.write(”"); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4. ...

  3. 洗礼灵魂,修炼python(47)--巩固篇—定义类的方法之@classmethod,@staticmethod

    定义类的方法,相信你会说,不就是在class语句下使用def () 就是定义类的方法了嘛,是的,这是定义的方法的一种,而且是最普通的方式 首先,我们已经知道有两种方式: 1.普通方法: 1)与类无关的 ...

  4. 万能Makefile,前戏做足项目做起来才顺畅。

    # 获取要编译的源码 SRC :=$(wildcard *.cpp) OBJ :=$(patsubst %.cpp,%.o,$(SRC)) # 编译参数 CC :=g++ STD :=-std=c++ ...

  5. 【第一章】zabbix3.4监控WindowsCPU使用率磁盘IO磁盘事件日志监控阈值邮件报警详细配置

    Windows安装zabbix-agent 监控Windows-CPU使用率 监控Windows-磁盘IO性能监控 监控Windows/Linux-磁盘触发器阈值更改 监控Windows-网卡自动发现 ...

  6. Python3编写网络爬虫10-数据存储方式三-CSV文件存储

    3.CSV文件存储 CSV 全称 Comma-Separated Values 中文叫做逗号分隔值或者字符分隔值,文件以纯文本形式存储表格数据.文件是一个字符序列 可以由任意数目的记录组成相当于一个结 ...

  7. 菜鸟水平如何在Android Studio中添加uiautomator测试框架

    1.启动AS,弹出创建Android Studio项目 2.选择 "Start a new Android Studio project",输入 application name ...

  8. [MySQL学习]STRICT_ALL_TABLES相应的OUT of RANGE VALUE FOR COLUMN和DATA truncated FOR COLUMN

    版权声明:声明:本文档能够转载,须署名原作者. 作者:无为 qq:490073687 周祥兴 zhou.xiangxing210@163.com https://blog.csdn.net/Rooki ...

  9. 2018-2019-2 网络对抗技术 20165318 Exp6 信息搜集与漏洞扫描

    2018-2019-2 网络对抗技术 20165318 Exp6 信息搜集与漏洞扫描 原理与实践说明 实践原理 实践内容概述 基础问题回答 实践过程记录 各种搜索技巧的应用 DNS IP注册信息的查询 ...

  10. Arduino IDE for ESP8266 教程(一) 局域网 网页查看数据 不控制

    淘宝:https://detail.tmall.com/item.htm?id=536504922008&spm=a1z09.2.0.0.5e160c66c76b3g&_u=e1qf7 ...