您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第15章 实例:用户管理
第15章实例:用户管理•在学习了PHP的基础知识,以及常用函数后,就可以使用PHP来进行网络程序开发了。PHP语言主要用于网站,以及B/S方式的软件的开发。在PHP软件的开发过程中,经常使用到的功能就是用户管理,用户管理功能主要包括:用户注册、用户登录、用户资料修改等模块。本章将使用PHP技术,采用面向过程的编程方式,来实现用户管理功能。15.1需要分析•本节主要针对实现用户管理功能,进行需求分析。不同系统的用户管理功能,具体的实现模块不一样。本章实现的用户管理功能,可以应用在动态网站系统,也可以用于普通的B/S软件中。15.1.1规划程序功能•本节主要规划用户管理的程序功能,以及每个功能需要注意的细节问题。用户管理功能主要实现4个大模块,即用户注册、用户登录、用户资料修改、用户密码修改。下面要实现的功能进行细化。•(1)用户注册及相关功能•用户注册时需要填写用户名、密码、性别、密码答案、密码问题、电子邮箱地址。•用户注册重复性检查,如果注册的用户名重复,提示用户名重复。•在输入密码时,要重复进行输入,并使用程序判断两次输入密码的有效性,以及两次输入的密码是否相等。•注册用户的密码,使用md5()函数加密保存。•(2)用户登录及相关功能•输入用户名、密码登录窗口。•登录认证码功能。•用户登录信息有效期设置。•(3)用户登录成功后的资料修改•修改用户的性别,电子邮箱地址。•修改用户资料时,要要提供用户密码进行验证。•(4)密码修改功能,在用户登录成功后,可以修改登录用户的密码,在修改用户密码时,需要提供用户密码进行再次验证。15.1.2设计数据库与表•由于本章实现的用户管理功能比较简单,所以只需要一个表就可以实现所有数据的记录,下面通过表格的方式,列出新建表每个字段的类型、长度,详细内容如表所示。15.2公用程序的编写与引用•在开始页面设计和程序编码之前,为了减少开发人员的工作量,可以把项目中重复使用到的代码段,编写成函数并保存。当在程序中要使用这些代码功能时,直接包含这些文件即可。在本章要实现的项目中,公用的代码主要是认证码功能、数据库访问、用户登录信息认证、信息提示,以及CSS样式表。下面分步骤介绍,如何实现这些公用文件的编写。15.2.1实现认证码功能的文件•在这些公用的代码中,实现认证码功能的PHP脚本,可以单独保存在一个文件中,•(具体内容请参照本书)15.2.2与数据访问相关的公用文件•初始化ADODB类库时,需要提供的数据库链接信息;在实现用户管理过程中,需要用到的信息提示功能;以及用户登录后,用户登录信息的认证功能;这些功能在项目中都会被重复使用到,可以都存放在同一个文件中,(具体内容请参照本书)15.3用户注册页面的设计与实现•在完成程序功能规划,以及数据库表的创建后,就可以进入页面设计阶段。用户管理功能需要使用的页面包括:用户注册页面,用户登录页面,用户资料修改页面,用户密码修改页面,以及信息提示页面。本节主要介绍如何实现用户注册界面。15.3.1用户注册页面设计•用户注册页面可以分为两个部分,其中第一部分是用户注册协议界面,第二部分是用户实际注册页面。用户注册协议界面有两个作用,一是用于声明网站的立场,二是防止非法程序自动注册用户,在用户提交注册信息后,脚本还需要根据用户提交的内容,实现用户提交数据用数据库的写入动作。下面分步骤介绍,整个用户注册过程代码。15.3.2实现用户注册•用户实际注册页面的代码如清单所示。15.3.3处理用户提交的数据•处理用户提交数据的代码如清单15.5所示。•如果浏览器的JavaScript功能被禁用,那么用户注册页面的数据检查功能也将失效,为了提高安全性,在用户数据处理过程中,需要使用PHP脚本对提交的表单数据再进行一次检查。•在用户注册数据处理过程中,验证码的对比也是一个重点,在创建验证码图片时,验证码中的字符已经存储到了SESSION中,当需要进行验证码对比时,可以从SESSION中取出验证码字符进行重组,再和用户提交的变量进行比较,从而完成验证码功能。•为了防止用户名重复带来的安全问题,可以在注册用户数据之前,检查用户是否存在。当用户提交的数据通过检查后,脚本会显示注册成功的信息提示窗口,并转向用户登录界面。15.4用户登录页面的设计与实现•用户登录页面有2个功能,1是在客户没有登录的情况下,显示登录界面;2是当用户从登录界面提交数据后,处理用户提交的数据,并根据登录的情况转向指定页面。•用户登录信息,将使用COOKIE进行存储,为了方便用户,登录界面中提供了COOKIE的有效期选择,用户可以根据实际情况,选择登录信息的有效时间。整个用户登录界面代码如清单所示。15.5用户资料信息的设计与实现•本节介绍的主要信息包括用户的资料、密码等,详细实现方法主要通过代码,读者一定注意每个页面的代码和代码引用情况。15.5.1用户资料修改页面•在用户登录成功后,将自动转到用户资料修改页面。为防止非法用户访问用户资料修改页面,在脚本的开始处,将使用15_2.php文件中的isLogin()函数,对用户登录信息检查。实现用户资料修改页面的代码,15.5.2用户密码修改页面•用户密码修改页面,会根据用户提交的数据,修改用户登录密码。当密码修改成功后,脚本会提示用户重新登录。•为了提高修改密码的安全性,在修改用户密码时,需要用户回答修改密码的问题。除此之外,用户修改密码页面与用户资料修改页面的运行过程都是一样的。15.5.3用户密码找回页面•使用密码找回功能,可以帮助忘记登录密码的用户,自己找回登录密码。实现用户密码找回页面的代码如清单所示。(详细内容请参照本书)15.6常见问题•本章通过PHP与MySQL数据库的配合,实现了用户注册、用户登录、用户资料管理等功能。本节将针对于用户权限和安全方面的问题,进行重点说明。15.6.1用户权限•本章实现的用户管理功能,为所有的用户,都提供了一种权限,即用户登录成功后,可以修改用户自身的资料。而在实际项目中,经常会要求对不同的用户,分配不同的权限,以提高安全性,以及系统管理的灵活性。15.6.2安全问题•本章要实现的是用户管理功能,那么对于安全方面的要求自然比较高。关于数据存储方面,项目中使用了SESSION来记录用户的登录信息,并在登录时提供了中文认证码的功能。•因为SESSION记录的用户登录信息,都保存在服务器上,可以防止用户伪造登录信息,从而提高安全性。•使用认证码是提高安全性的另一种手段。非法用户可以使用暴力破解,来攻击用户登录功能,从而取得用户权限,而使用图形认证码技术,可以加强系统对于暴力破解程序的防御能力。•本章实现的用户管理功能还有两个方面的安全问题,一是在邮件地址检查时,并没有对输入的邮件地址格式进行检查;二是在用户注册时,用户填写的密码问题答案使了明文保存在数据库中。有兴趣的读者可以根据以前章节的知识,完善这两段代码。
本文标题:第15章 实例:用户管理
链接地址:https://www.777doc.com/doc-3844448 .html