博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笔记二:LoginCheck.php
阅读量:5046 次
发布时间:2019-06-12

本文共 2487 字,大约阅读时间需要 8 分钟。

 

接着上一个笔记,进行登陆页面的处理时,我们需要做以下几点:

一、对Login页面输入的值进行接收

二、连接数据库

三、编写sql语句,并判断sql语句执行的情况,如果成功就让他有权限并跳转到管理页面,不成功就返回重新填写;

 

首先,我们应该书写出php语法的格式,就像HTML中的<html></html>一样,我们要先写出PHP的格式:<?php..?>

然后,我们这里是在登录管理系统,需要一个通关证,就如同你进学校需要校卡一样,在PHP开始的时候,就应该制作一个校卡,然后判断这个值是不是我们学校的学生,如果这个学生是我们学校的,那么就给他一个校卡,让他可以看到管理页面,这里就要用到session了,可以多查询一下,开启session的语句是:session_start;

<?php

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字段为$uidpwd字段为$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 “<script>alert(‘登录成功’);window.location.href=’Admin.php’;</script>”;

Exit;//一定要记到退出,不然就会执行下面的账号,密码错误的语句!

}

}

}

Echo “<script>alert(‘您的账号或者密码错误!’);history.back();</script>”;//如果没有读到数据,就直接弹。

Exit;

 

处理页面的笔记就到这里了。

 

实战开发的完整代码:

<meta charset="utf-8">

<?php
require "dbCoon.php";//遇到错误的时候停止执行
//include "dbCoon.php";//遇到错误的时候继续执行
//接收用户信息

session_start();

$yh=$_POST["uid"];
$mm=$_POST["pwd"];
if(empty($yh)||empty($mm))
{
echo "<script>alert('请输入账号和密码!');history.back();</script>";
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 "<script>alert('账号密码错误,请重新输入');history.back();</script>";

$rs->free();
$db->close();
?>

转载于:https://www.cnblogs.com/hhlh/p/3751139.html

你可能感兴趣的文章
Spring注解之@Lazy注解,源码分析和总结
查看>>
多变量微积分笔记24——空间线积分
查看>>
Magento CE使用Redis的配置过程
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Mac 下的Chrome 按什么快捷键调出页面调试工具
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>
JS截取字符串常用方法
查看>>
Google非官方的Text To Speech和Speech Recognition的API
查看>>
stdext - A C++ STL Extensions Libary
查看>>
Django 内建 中间件组件
查看>>
bootstrap-Table服务端分页,获取到的数据怎么再页面的表格里显示
查看>>
进程间通信系列 之 socket套接字及其实例
查看>>
天气预报插件
查看>>
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
mysql忘记root密码
查看>>
apache服务器中设置目录不可访问
查看>>
嵌入式Linux驱动学习之路(十)字符设备驱动-my_led
查看>>
【NOIP模拟】密码
查看>>