接着上一个笔记,进行登陆页面的处理时,我们需要做以下几点:
一、对 Login
页面输入的值进行接收
二、连接数据库
三、编写 sql
语句,并判断
sql
语句执行的情况,如果成功就让他有权限并跳转到管理页面,不成功就返回重新填写;
首先,我们应该书写出 php
语法的格式,就像
HTML
中的
一样,我们要先写出
PHP
的格式:
然后,我们这里是在登录管理系统,需要一个通关证,就如同你进学校需要校卡一样,在 PHP
开始的时候,就应该制作一个校卡,然后判断这个值是不是我们学校的学生,如果这个学生是我们学校的,那么就给他一个校卡,让他可以看到管理页面,这里就要用到
session
了,可以多查询一下,开启
session
的语句是:
session_start;
Session_start;// 注意是小写。
?>
第一步,接收值, php
并不像
C
语言一样需要定义变量,这里可以直接使用变量:
$uid=$_POST[“name”];
$pwd=$_POST[“pw”];//这里最好对密码进行md5加密过后再存到数据库当中
$pwd = md5($pwd);
PS: 这里需要说明一下,在
Login
页面中,
form
的传值方式是
post
,所以这里接收方式也应该是
post
,但是一定要注意接值的格式是
$_POST[
“name”] 引号中的是你要接收的值的名字。
第二步:连接数据库,在 PHP
中,连接数据库有几种方法,我们先介绍
mysqli
方式(使用
mysqli
之前需要在
php
配置下面开启这个方式)。
$db = new mysqli(“数据库的 IP
”,”数据库账号”,”数据库密码”,”表名”);
四、第三步:编写 sql
语句,并判断
sql
语句执行的情况,如果成功就让他有权限并跳转到管理页面,不成功就返回重新填写。这里我们是在登录系统,也就是说这些账号密码应该是存在我们的数据库中的,那么,我们就要将他输入的值放到数据库中去校验是不是有这些值。
$sql = “select * from 表名
where uid =
‘$uid’ and pwd = ‘$pwd’ ”;
$rs = $db -> query($sql);// 执行
sql
语句,并将结果传给
$rs
学习过 SQL
的都知道这个语句,就是查询某表中
uid
字段为
$uid
和
pwd
字段为
$pwd
的结果。
但是如果使用这种语句的话,安全性直接不能谈了,一个简单的 SQL
注入都能登陆进去。
所以这里我们需要复杂一点的语法来判断这些值:先查询这个表中,有没有 uid
为
$uid
的值,如果有,再验证密码,密码正确才完成登陆;如果没有,就直接说账号密码错误,并返回到登录页面,下面来实现一下:
$sql = “select * from 表名
where uid =
‘$uid’ ”;
$rs = $db -> query($sql);
$rows_count = mysqli_num_rows($rs);// 这句是说读取了几条数据。
If($rows_count >= 1){// 如果得到的数据
>=1
条就执行以下语句
$row = $rs -> fetch_array();// 将得到的数据以数组的形式存到
$row
中
If($row){// 如果存储成功就执行以下语句
If($row[“pwd”]==$pwd{// 如果数据当中的
pwd
值和
$uid
相同,就执行以下语句
$_SESSION[“admin”] = $uid;// 这里是将通行证颁发给
$uid
;
Echo “”;
Exit;// 一定要记到退出,不然就会执行下面的账号,密码错误的语句!
}
}
}
Echo “”;// 如果没有读到数据,就直接弹。
Exit;
处理页面的笔记就到这里了。
实战开发的完整代码:
require "dbCoon.php";//遇到错误的时候停止执行
//include "dbCoon.php";//遇到错误的时候继续执行
//接收用户信息
session_start();
$yh=$_POST["uid"];
$mm=$_POST["pwd"];
if(empty($yh)||empty($mm))
{
echo "";
exit;
}
$mm = md5($mm);//md5加密
//拼装SQL语句,注:这里存在安全隐患
$sql = "select * from userinfo where uid='$yh';";
//判断SQL语句,判断用户是否合法(如果合法,则记录登录信息后跳转;否则返回重新输入)
$rs = $db -> query($sql);
//读取了几条数据
$rows_count = mysqli_num_rows($rs);
if($rows_count >= 1)
{
//对密码进行验证
$row = $rs -> fetch_array();
if($row)
{
if($row["pwd"] == $mm)
{
$_SESSION["blog_manager"]=$yh;
header("Location:AdminPage/AdminIndex.php");
exit;
}
}
}
echo "";
$rs->free();
$db->close();
?>