笔记二:LoginCheck.php

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

一、对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字段为$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 “<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();
?>

时间: 2024-08-27 06:20:44

笔记二:LoginCheck.php的相关文章

老男孩培训视频听课笔记二(在51cto上听的)

centos 5.8 文本安装过程    引导采用默认,引导不用设置密码    网络配置,根据实际情况配置,网关是网络出口的地址,一般为wlan出口的路由器的地址或者是代理服务器的内网IP    DNS简单解说图:      主机名--时区--root密码    选择自定义系统安装包--最小化(安全方便工作,建议安装以下的组)      ·base-- 基础      ·editors-编辑器      ·development librarays--开发库      ·development

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

《逻辑思维简易入门》(第2版) 阅读笔记二

<逻辑思维简易入门>(第2版) 阅读笔记二 本周阅读的是<逻辑思维简易入门>的第三章,也就是说,本书的第一部分就已经读完了. 第三章.信念的优点 信念和负信念是人们在接受一个事物时一种心理态度,延伸来说也就是对事物的认知态度.因为我们在研究 逻辑思维的时候,都有一个前提:“以正常情况以及说话者真诚”,所以有人如果对于一件事物不做回应,我们可以认为这是一种既不相信,也不怀疑的的态度. 信念的优缺点有很多,在书中主要介绍了下面几种: 1.准确性 好的信念实在准确的表达事实,同样真的信念

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Emacs 笔记二

Emacs 笔记二 Table of Contents 1. 前言 2. emacs基本操作(常用快捷键) 3. emacs模式讲解 4. emacs缓冲区 5. org mode 5.1. 列表 5.2. 快键键 5.3. 内嵌元素(插入代码什么的) 5.4. 表格 1 前言 最近在学着写博客,发现MarkDown真乃神器,于是去找了很多markdown的工具,发现作业部落 最好的那个,而无意间又发现了org-mode火爆到极致 非常被人推崇,其实作业部落 已经是能很完美的满足我的需求了,但是

《Programming in Lua 3》读书笔记(二十二)

日期:2014.8.6 PartⅣ The C API 26 Extending Your Application 使用Lua很重要的一点是用来做配置语言.配合主语言做一些功能的配置. 26.1 The Basics 有的时候程序需要配置一些功能信息,很多时候可能有许多别的方法比用lua做配置要更简单:如使用环境变量或者读取文件,读取文件涉及到文件的解析.如果使用Lua进行配置的话,相当于用lua文件替代了要读取的如csv.txt文件等. 使用Lua进行配置的时候,就需要使用Lua API去控制

小猪的数据结构学习笔记(二)

小猪的数据结构学习笔记(二) 线性表中的顺序表 本节引言: 在上个章节中,我们对数据结构与算法的相关概念进行了了解,知道数据结构的 逻辑结构与物理结构的区别,算法的特性以及设计要求;还学了如何去衡量一个算法 的好坏,以及时间复杂度的计算!在本节中我们将接触第一个数据结构--线性表; 而线性表有两种表现形式,分别是顺序表和链表;学好这一章很重要,是学习后面的基石; 这一节我们会重点学习下顺序表,在这里给大家一个忠告,学编程切忌眼高手低,看懂不代表自己 写得出来,给出的实现代码,自己要理解思路,自己

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意