前言
网站用户注册与登录是很常用的一个功能,本节教材就以此来演示一下 PHP 中如何开发用户注册与登录模块。
本节需要用到的重点 PHP 基础知识:
PHP 中预定义 $_POST 和 $_GET 全局变量来接受用户表单和 URL 参数信息,关于 PHP 表单更多信息参见《PHP 表单》。
PHP 正则表达式用于判断用户的输入是否符合要求,关于 正则表达式 更多信息参见《PHP 正则表达式》。
用户登录检测通过后以 session 来保持用户的登录信息,关于 session 更多信息参见《PHP Session》或者《PHP Cookie》。
需求分析
主要功能分为 用户注册、用户登录、用户退出、用户中心 四个部分。
用户注册
用户注册主要功能有:
注册信息表单填写界面 javascript 脚本初步检测用户输入的注册信息。
注册处理模块检测注册信息是否符合要求。
检测用户名是否已存在。
将注册信息写入数据表,注册成功。
用户登录
用户登录主要功能有:
登录表单界面 javascript 脚本初步检测用户输入的登录信息。
登录模块将用户输入信息与数据库数据进行核对。
登录信息正确,则提示登录成功,将用户设置为登录状态(session)。
登录信息不正确,则提示登录失败,用户可以再次尝试登录。
用户退出
用户退出主要功能有:
无条件注销 session 。
用户中心
用户退出主要功能有:
判断用户是否登录,如果没有登录,则转向到登录界面。
如果登录是登录状态,则读出用户相关信息。
数据表设计
根据功能需求分析,用于记用户信息的 user 表需要的字段如下:
字段名
数据类型
说明
uid
mediumint(8)
主键,自动增长
username
char(15)
注册用户名
password
char(32)
MD5 加密后的密码
varchar(40)
用户 Email
regdate
int(10)
用户注册时间戳
建表 SQL 参考如下:
CREATE TABLE `user` (
`uid` mediumint(8) unsigned NOT NULL auto_increment,
`username` char(15) NOT NULL default '',
`password` char(32) NOT NULL default '',
`email` varchar(40) NOT NULL default '',
`regdate` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
页面布局
各页面功能如下:
reg.html:用户注册信息填写表单页面
conn.php:数据库连接包含文件
reg.php:用户注册处理程序
login.html:用户登录表单页面
login.php:用户登录表单页面
my.php:用户中心