首页 理论教育 最简单的用户登录程序

最简单的用户登录程序

时间:2023-10-29 理论教育 版权反馈
【摘要】:以上SQL语句实现的是在s008q中建了一个user表,同时插入了两条用户信息的记录。转到了各自的主页后,首先判断Session用户类型是否与本页的用户类型相匹配,如果不匹配,则要求重新登录,如果匹配,可以继续访问,显示用户真名,显示欢迎信息。input的完善需要为用户名、密码两个输入框起个名字,以便在下一程序接收时区分哪个是用户名,哪个是密码。确保每个访问这个网页的用户的确拥有访问的权限。

最简单的用户登录程序

用户登录是一个网站区分用户的一个重要手段,对于一个成熟的网站,不同的用户应该有不同的权限。例如,不登录的普通用户可以通过网站公开的内容,了解到这个网站的用途、特点;注册了的普通用户应该能够看到更多的信息;作为一个网站记者,不但可以看到网站所有的内容,还有发布文章的权限;网站编辑则接受网站总编分派的任务,对分派的文章进行编辑加工;网站总编则可以分派编辑任务,决定文章所在的版面;网站管理员则负责网站维护、用户管理等。

每个网站都要为用户建立一个用户信息库。

1. 建user表

在MySQL建一个user表,用于存储注册用户的各种信息。

在表中插入一个管理员和一个注册用户。

以上SQL语句实现的是在s008q中建了一个user表,同时插入了两条用户信息的记录。

库里有一项用户类型(usertype),这项是为给用户区分简单权限用的,例如,记者(reporter)登录后应该看到记者的界面,编辑(editor)登录后应该看到编辑加工的页面,总编辑(chief)可以调整文章所在的版面,注册用户(user)可以浏览文章和发布评论,系统管理员(admin)可以添加修改用户信息等。

添加了一个系统管理员用户,用户名,lgl,密码,lglmm,用户类型,admin;又添加了一个注册用户,用户名,zyh,密码,zyhmm,用户类型,user,以便测试程序的时候使用。

2. 编程思路

(1)在网站首页的登录框中输入用户名、密码(index.html),传给login.php;

(2)login.php接收传过来的用户名、密码,在数据库中查询用户名、密码是否存在。如果存在,则查询是什么类型的用户,如果是admin,转向访问系统管理员主页(homepage_admin.php),如果是user,则转向注册用户主页(homepage_register.php),如果用户不存在,则报错。

(3)转到了各自的主页后,首先判断Session用户类型是否与本页的用户类型相匹配,如果不匹配,则要求重新登录,如果匹配,可以继续访问,显示用户真名,显示欢迎信息。

3. 程序

程序1 登录首页(index.html)

这是上一节用Bootstrap设计的网站首页中登录框部分。

(1)form的完善

做登录程序时,需要在form中加上(action)属性,以告诉程序输入的用户名、密码到哪个程序去接收、判断,同时告诉程序用什么方法(method)传输数据。

可以看到,加入了method="post",是告诉程序使用post方法传输数据;action="login.php"告诉程序要将用户名、密码发给login.php进行判断处理。

(2)input的完善

需要为用户名、密码两个输入框起个名字,以便在下一程序接收时区分哪个是用户名,哪个是密码。

程序2 登录判断与转向程序页(login.php)

程序3 系统管理员主页(homepage_admin.php)

程序4 注册用户主页(homepage_register.php局部)

程序5 注销登录程序(logout.php)

4. 程序讲解(www.xing528.com)

(1)接收用户名、密码

程序2中:$_POST['input_username']

是接收由index.html中的input相同name传过来的用户名信息,注意发送端和接收端的变量名(input_username)一定要一样。

(2)判断用户名、密码是否存在

程序2中:

通过这个SQL语句来判断用户输入的用户名、密码是否同时存在,如果同时存在,则说明库中已有这套用户名、密码,用户已注册;如果不存在,则说明用户未注册或用户名、密码有错误

(3)为Session赋值

程序2中:

$_SESSION['S_username'] = $U

它与它后面的三句话是给session变量赋值,这个session变量在没有被销毁前始终存在。

(4)转向

程序2中:

如果判断用户类型是管理员,则转向管理员主页,如果是别的用户,就分别转向别的用户主页。

(5)用户权限判断

程序3中:

每个程序页面的最前端都应加上权限判断,以此来保障网站的信息安全。确保每个访问这个网页的用户的确拥有访问的权限。如果没有用户类型的分类,也可以判断其他的session变量是否已设置,来判断是否有权访问此页。

(6)注销登录

程序5中:

unset($_SESSION['S_userid']);

unset($_SESSION['S_username']);

unset($_SESSION['S_usertype']);

unset($_SESSION['S_truename']);

将所有设置的session变量unset,则再遇到isset($_SESSION['userid'])或$_SESSION['S_usertype']!='admin'等语句时,将可以判定未登录。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈