PHP 用户注册与登录11页精选文档Word文档下载推荐.docx
- 文档编号:22273098
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:22.42KB
PHP 用户注册与登录11页精选文档Word文档下载推荐.docx
《PHP 用户注册与登录11页精选文档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《PHP 用户注册与登录11页精选文档Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
本节需要用到的重点PHP基础知识:
∙PHP中预定义$_POST和$_GET全局变量来接受用户表单和URL参数信息,关于PHP表单更多信息参见《PHP表单》。
∙PHP正则表达式用于判断用户的输入是否符合要求,关于正则表达式更多信息参见《PHP正则表达式》。
∙用户登录检测通过后以session来保持用户的登录信息,关于session更多信息参见《PHPSession》或者《PHPCookie》。
需求分析
主要功能分为用户注册、用户登录、用户退出、用户中心四个部分。
用户注册
用户注册主要功能有:
1.注册信息表单填写界面javascript脚本初步检测用户输入的注册信息。
2.注册处理模块检测注册信息是否符合要求。
3.检测用户名是否已存在。
4.将注册信息写入数据表,注册成功。
用户登录
用户登录主要功能有:
1.登录表单界面javascript脚本初步检测用户输入的登录信息。
2.登录模块将用户输入信息与数据库数据进行核对。
3.登录信息正确,则提示登录成功,将用户设置为登录状态(session)。
4.登录信息不正确,则提示登录失败,用户可以再次尝试登录。
用户退出
用户退出主要功能有:
1.无条件注销session。
用户中心
1.判断用户是否登录,如果没有登录,则转向到登录界面。
2.如果登录是登录状态,则读出用户相关信息。
数据表设计
根据功能需求分析,用于记用户信息的user表需要的字段如下:
字段名
数据类型
说明
uid
mediumint(8)
主键,自动增长
username
char(15)
注册用户名
password
char(32)
MD5加密后的密码
varchar(40)
用户Email
regdate
int(10)
用户注册时间戳
建表SQL参考如下:
CREATETABLE`user`(
`uid`mediumint(8)unsignedNOTNULLauto_increment,
`username`char(15)NOTNULLdefault'
'
`password`char(32)NOTNULLdefault'
`email`varchar(40)NOTNULLdefault'
`regdate`int(10)unsignedNOTNULLdefault'
0'
PRIMARYKEY(`uid`)
)ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=1;
页面布局
各页面功能如下:
∙reg.html:
用户注册信息填写表单页面
∙conn.php:
数据库连接包含文件
∙reg.php:
用户注册处理程序
∙login.html:
用户登录表单页面
∙login.php:
∙my.php:
注册页面
reg.html负责收集用户填写的注册信息。
教程里只列出关键的代码片段,完整的代码附在本节最后。
注册表单
<
fieldset>
legend>
用户注册<
/legend>
formname="
RegForm"
method="
post"
action="
reg.php"
onSubmit="
returnInputCheck(this)"
>
p>
labelfor="
username"
class="
label"
用户名:
/label>
inputid="
name="
type="
text"
input"
/>
span>
(必填,3-15字符长度,支持汉字、字母、数字及_)<
/span>
p/>
password"
密码:
(必填,不得少于6位)<
repass"
重复密码:
email"
电子邮箱:
(必填)<
inputtype="
submit"
value="
提交注册"
left"
/p>
/form>
/fieldset>
javascript检测代码
scriptlanguage=JavaScript>
functionInputCheck(RegForm)
if(RegForm.username.value=="
"
)
alert("
用户名不可为空!
);
RegForm.username.focus();
return(false);
if(RegForm.password.value=="
必须设定登录密码!
RegForm.password.focus();
if(RegForm.repass.value!
=RegForm.password.value)
两次密码不一致!
RegForm.repass.focus();
if(RegForm.email.value=="
电子邮箱不可为空!
RegForm.email.focus();
/script>
CSS样式
styletype="
text/css"
html{font-size:
12px;
}
fieldset{width:
520px;
margin:
0auto;
legend{font-weight:
bold;
font-size:
14px;
label{float:
left;
width:
70px;
margin-left:
10px;
.left{margin-left:
80px;
.input{width:
150px;
span{color:
#666666;
/style>
注册表单效果图:
数据库连接
?
php
$conn=@mysql_connect("
localhost"
"
root"
root123"
if(!
$conn){
die("
连接数据库失败:
.mysql_error());
mysql_select_db("
test"
$conn);
//字符转换,读库
mysql_query("
setcharacterset'
gbk'
//写库
setnames'
注册处理
reg.php负责处理用户注册信息。
注册检测
if(!
isset($_POST['
submit'
])){
exit('
非法访问!
$username=$_POST['
username'
];
$password=$_POST['
password'
$email=$_POST['
email'
//注册信息判断
preg_match('
/^[\w\x80-\xff]{3,15}$/'
$username)){
错误:
用户名不符合规定。
ahref="
javascript:
history.back(-1);
返回<
/a>
if(strlen($password)<
6){
密码长度不符合规定。
/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/'
$email)){
电子邮箱格式错误。
本段代码首先检测是否POST提交访问该页,接下来根据注册要求(用户名3-15字符长度,支持汉字、字母、数字及_;
密码不得少于6位)对用户提交的注册信息进行检测。
在检测用户名和电子邮箱时采用了正则检测,关于正则表达式更所信息请参看《PHP正则表达式》。
数据库交互
//包含数据库连接文件
include('
conn.php'
//检测用户名是否已经存在
$check_query=mysql_query("
selectuidfromuserwhereusername='
$username'
limit1"
if(mysql_fetch_array($check_query)){
echo'
用户名'
$username,'
已存在。
;
exit;
//写入数据
$password=MD5($password);
$regdate=time();
$sql="
INSERTINTOuser(username,password,email,regdate)VALUES('
'
$password'
$email'
$regdate)"
if(mysql_query($sql,$conn)){
用户注册成功!
点击此处<
login.html"
登录<
}else{
抱歉!
添加数据失败:
mysql_error(),'
br/>
重试'
登录页面
login.html负责收集用户填写的登录信息。
用户登录<
LoginForm"
login.php"
确定"
javascript检测及CSS样式可参考reg.html,本部分略去,可直接查看最后附录的完整代码。
登录处理
login.php负责处理用户登录与退出动作。
//登录
$username=htmlspecialchars($_POST['
]);
$password=MD5($_POST['
//检测用户名及密码是否正确
andpassword='
if($result=mysql_fetch_array($check_query)){
//登录成功
$_SESSION['
]=$username;
userid'
]=$result['
uid'
echo$username,'
欢迎你!
进入<
my.php"
用户中心<
login.php?
action=logout"
注销<
登录!
登录失败!
该段代码首先确认如果是用户登录的话,必须是POST动作提交。
然后根据用户输入的信息去数据库核对是否正确,如果正确,注册session信息,否则提示登录失败,用户可以重试。
该段代码需要在页面开头启用session_start()函数,参见下面退出处理代码部分。
退出处理
处理用户退出的代码跟处理登录的代码都在login.php里。
session_start();
//注销登录
if($_GET['
action'
]=="
logout"
){
unset($_SESSION['
注销登录成功!
该段代码在处理用户登录的代码之前,只允许以login.php?
action=logout的方式访问,其他方式都认为是检测用户登录。
具体逻辑参看附录完整代码。
my.php是用户中心,列在教程里作为用户登录检测参考。
//检测是否登录,若没登录则转向登录界面
isset($_SESSION['
header("
Location:
exit();
$userid=$_SESSION['
$username=$_SESSION['
$user_query=mysql_query("
select*fromuserwhereuid=$useridlimit1"
$row=mysql_fetch_array($user_query);
echo'
用户信息:
用户ID:
$userid,'
用户名:
邮箱:
$row<
注册日期:
date("
Y-m-d"
$row['
regdate'
]),'
登录<
PHP附录:
用户注册与登录完整代码
以下列出了用户注册与登录的完整代码,您也可以点击此处下载本节教程完整的源代码压缩包。
login.html
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDXHTML1.0Transitional//EN"
http:
//w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
htmlxmlns="
//w3.org/2019/xhtml"
head>
metahttp-equiv="
Content-Type"
content="
text/html;
charset=gbk"
title>
/title>
functionInputCheck(LoginForm)
if(LoginForm.username.value=="
请输入用户名!
LoginForm.username.focus();
if(LoginForm.password.value=="
请输入密码!
LoginForm.password.focus();
/head>
body>
div>
/div>
/body>
/html>
conn.php
*数据库连接
reg.php
$passw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 用户注册与登录11页精选文档 用户 注册 登录 11 精选 文档