login.docx
《login.docx》由会员分享,可在线阅读,更多相关《login.docx(30页珍藏版)》请在冰豆网上搜索。
login
该系统为简单的注册登录系统,包含的功能有
1.用户注册
2.给用户邮箱发送激活码
3.用户登录
4.保存用户登录信息,自动登录
5.用户修改密码
6.用户密码找回
7.用户注销登录
主要代码文件有:
config.php
该文件为连接数据库文件,连接到mysql并选择数据库
install.php
该文件为自动安装数据库表文件,系统所需的用户信息存储表
SignUp.php
该文件为用户注册的界面,html代码,数据处理文件add.php
add.php
该文件为用户注册的数据处理文件,检查用户注册各数据是否合法,注册成功,
将数据写进数据库表,并发送激活码到用户邮箱,自动跳转到激活界面
activate.php,提示用户激活账号
activate.php
该文件为用户激活界面,html代码,激活数据处理文件active_go.php
该界面同时可以重新发送激活码,重新发送激活码数据处理文件
Resend_actNum.php
Resend_actNum.php
该文件为重新发送激活码文件,用户输入用户名和注册邮箱,点击重新发送即可
获得激活码邮件
active_go.php
该文件为激活数据处理文件,用户激活成功,将数据库表中激活码置为0,自动
跳
转到登录界面
login.php
用户登录界面,首先判断session会话变量中是否存储了登录信息,如果有,则
自
动登录,登录数据处理文件login_go.php
login_go.php
用户登录数据处理文件,需要判断用户是否激活,用户名是否存在,密码是否匹
配等,同时创建会话,保存登录信息,如果用户登录时选择保存登录信息,则发
送cookie到客户端
forgot.php
找回密码界面,html代码。
用户登录时忘记密码,则可以通过输入用户名和注
册
邮箱获取密码,数据处理文件为forgot_go.php
forgot_go.php
用户找回密码数据处理文件,如果用户名和邮箱检测正确,则发送密码到邮箱,
然后跳转到登录页面重新登录
manage.php
用户管理页面,导航框架,点击左边的链接,右边会显示相应的网页
manage_menu.php
用户管理页面左边的导航页面,显示各个功能菜单,点击相应的链接,右边显示
响应的网页
change_password.php
在manage文件夹下,修改密码的界面,在用户管理左边导航点击修改密码,右
边
页面会跳转到该页面修改密码,数据处理文件为change_password_go.php
change_password_go.php
在manage文件夹下,用户修改密码数据处理文件,如果数据检测正确,则修改
数
据库表中的密码,同时也要修改session会话中的密码,修改成功返回到默认管
理
页面,不成功则返回重新输入
menu_default.php
在manage文件夹下,用户管理的默认管理页面,点击管理页面左边导航我的地
盘
链接也会跳转到该页面,该页面代码未完善,以后扩展
login_off.php
在manage文件夹下,用户注销登录文件。
在管理页面左边导航点击退出登录,
会
执行该文件,然后直接跳转到登录界面。
注销登录,只要设置客户端cookie过
期
,删除会话。
PHP注册登录系统-----config.php
php
$server="localhost";
$username="root";
$password="";
$database="";
if($database=="")
{
$query="usemembers";
if(mysql_query($query)==null)
{
$query="createdatabasemembers";
if(mysql_query($query)==1)
{
//创建数据库成功,开始连接数据库
$database="members";
$conn=mysql_connect($server,$username,$password)
ordie("couldnotconnectmysql");
mysql_select_db($database,$conn)
ordie("couldnotopendatabase");
}
else
{
echo"Errorwhilecreatingdatabase
(Error".mysql_errno().":
\"".mysql_error()."\")
";//创建数据库出错
}
}
else
{
//如果数据库中存在members数据库
$database="members";
$conn=mysql_connect($server,$username,$password)
ordie("couldnotconnectmysql");
mysql_select_db($database,$conn)
ordie("couldnotopendatabase");
}
}
else
{
//如果选择的是别的数据库,也就是说$database不为空
$conn=mysql_connect($server,$username,$password)
ordie("couldnotconnectmysql");
mysql_select_db($database,$conn)
ordie("couldnotopendatabase");
}
?
>
PHP注册登录系统-----install.php
php
//导入数据库连接文件
include'config.php';
//自动安装数据库表
$query="createtableals_signup(
UserNamevarchar(20),
Passwordvarchar(20),
Emailvarchar(20),
actNumvarchar(20),
UserLeveltinyint,
SignUpdatevarchar(20),
LastLoginvarchar(20),
LastLoginFailvarchar(20),
NumLoginFailtinyint
)";
$result=mysql_query($query);
if($result==1)
{
echo"signuptablesuccesfullycreated.
";
}
else
{
echo"Errorwhilecreating
table(ErrorNumber".mysql_errno().":
\"".mysql_error()."\")
";
}
?
>
PHP注册登录系统-----SignUp.php
用户注册
新用户注册
用户名
|
密码
|
确认密码
size="20"> |
Email
|
如果您已经有账号,请点击这里登陆。
PHP注册登录系统-----add.php
(
php
//用户注册以后的数据处理文件。
需要先检查数据合法性,然后写入数据库
//获取注册用户提交的数据
$UserName1=$_POST["UserName"];//用户名
$Password1=$_POST["Password"];//密码
$ConfirmPassword1=$_POST["ConfirmPassword"];//确认密码
$Email1=$_POST["Email"];//邮箱
//定义保存激活码变量
$actnum="";
//导入数据库文件
include'config.php';
//定义产生激活码函数
functionCheck_actnum()
{
$chars_for_actnum=array("A","B","C","D","E","F","G","H","I","J","K","L",
"M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d",
"e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v",
"w","x","y","z","1","2","3","4","5","6","7","8","9","0"
);
for($i=1;$i<=20;$i++)//生成一个20个字符的激活码
{
$actnum.=$chars_for_actnum[mt_rand(0,count($chars_for_actnum)-1)];
}
return$actnum;
}
//判断用户名函数
functionCheck_username($UserName)//参数为用户注册的用户名
{
//用户名三个方面检查
//是否为空字符串检测长度检测
$Max_Strlen_UserName=16;//用户名最大长度
$Min_Strlen_UserName=4;//用户名最短长度
$UserNameChars="^[A-Za-z0-9_-]";//字符串检测的正则表达式
$UserNameGood="用户名检测正确";//定义返回的字符串变量
if($UserName=="")
{
$UserNameGood="用户名不能为空";
return$UserNameGood;
}
if(!
ereg("$UserNameChars",$UserName))//正则表达式匹配检查
{
$UserNameGood="用户名字符串检测不正确";
return$UserNameGood;
}
if(strlen($UserName)<$Min_Strlen_UserName||
strlen($UserName)>$Max_Strlen_UserName)
{
$UserNameGood="用户名字长度检测不正确";
return$UserNameGood;
}
return$UserNameGood;
}
//判断密码是否合法函数
functionCheck_Password($Password)
{
//是否为空
字符串检测
长度检测
$Max_Strlen_Password=16;//密码最大长度
$Min_Strlen_Password=6;//密码最短长度
$PasswordChars="^[A-Za-z0-9_-]";//密码字符串检测正则表达式
$PasswordGood="密码检测正确";//定义返回的字符串变量
if($Password=="")
{
$PasswordGood="密码不能为空";
return$PasswordGood;
}
if(!
ereg("$PasswordChars",$Password))
{
$PasswordGood="密码字符串检测不正确";
return$PasswordGood;
}
if(strlen($Password)<$Min_Strlen_Password||
strlen($Password)>$Max_Strlen_Password)
{
$PasswordGood="密码长度检测不正确";
return$PasswordGood;
}
return$PasswordGood;
}
//判断邮箱是否合法函数
functionCheck_Email($Email)
{
$EmailChars="^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$";//正则表达
式判断是否是合法邮箱地址
$EmailGood="邮箱检测正确";
if($Email=="")
{
$EmailGood="邮箱不能为空";
return$EmailGood;
}
if(!
ereg("$EmailChars",$Email))//正则表达式匹配检查
{
$EmailGood="邮箱格式不正确";
return$EmailGood;
}
return$EmailGood;
}
//判断两次密码输入是否一致
functionCheck_ConfirmPassword($Password,$ConfirmPassword)
{
$ConfirmPasswordGood="两次密码输入一致";
if($Password<>$ConfirmPassword)
{
$ConfirmPasswordGood="两次密码输入不一致";
return$ConfirmPasswordGood;
}
else
return$ConfirmPasswordGood;
}
//调用函数,检测用户输入的数据
$UserNameGood=Check_username($UserName1);
$PasswordGood=Check_Password($Password1);
$EmailGood=Check_Email($Email1);
$ConfirmPasswordGood=Check_ConfirmPassword($Password1,$ConfirmPassword1);
$error=false;//定义变量判断注册数据是否出现错误
if($UserNameGood!
="用户名检测正确")
{
$error=true;//改变error的值表示出现了错误
echo$UserNameGood;//输出错误信息
echo"
";
}
if($PasswordGood!
="密码检测正确")
{
$$error=true;
echo$PasswordGood;
echo"
";
}
if($EmailGood!
="邮箱检测正确")
{
$error=true;
echo$EmailGood;
echo"
";
}
if($ConfirmPasswordGood!
="两次密码输入一致")
{
$error=true;
echo$ConfirmPasswordGood;
echo"
";
}
//判断数据库中用户名和email是否已经存在
$query="select*fromals_signupwhereUserName='$UserName1'orEmail='$Email1'";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
while($row)
{
if($row["UserName"]==$UserName1)
{
$error=true;
echo"用户名已存在
";
}
if($row["Email"]==$Email1)
{
$error=true;
echo"用户邮箱已经注册
";
}
}
//如果数据检测都合法,则将用户资料写进数据库表
if($error==false)//$error==false表示没有错误
{
$actnum=Check_actnum();//调用激活码函数
$Datetime=date("d-m-yG:
i");//获取注册时间,也就是数据写入到用户表的时间
$query="insertintoals_signup
(UserName,Password,Email,actNum,UserLevel,SignUpdate,LastLogin,LastLoginFail,Nu
mLoginFail)
values
('$UserName1','$Password1','$Email1','$actnum','1','$Datetime','0','0','0')";
$result=mysql_query($query);
$to=$Email1;//用户注册的邮箱
$subject="激活码";
$message="您的激活码为$actnum";
$header="From:
kristin-wang@"."\r\n";//邮件头信息
if(mail($to,$subject,$message,$header))//php中mail()函数用来发送邮件,需要
更改php.ini文件,最好安装SMTP服务器
{
//产生链接,链接到激活页面
?
>
请登陆邮箱获取激活码。
然后点击这里激活。
php
}
}
?
>
PHP注册登录系统-----activate.php
注册账号激活
注册账号激活
谢谢注册,激活码已经被发送到您的邮箱!
用户名:
激活码:
如果没有收到邮件,可以再次发送邮件:
用户名:
邮 箱:
PHP注册登录系统-----Resend_actNum.php
重新发送激活码
php
//获取用户名,激活码,邮件地址
$UserName1=$HTTP_POST_VARS["UserName"];
$actNum1=$HTTP_POST_VARS["actNum"];
$Email1=$HTTP_POST_VARS["Email"];
$Resend=$HTTP_POST_VARS["Resend"];//检查是否需要重发激活码.在点击重新发送激活码
后传递的隐藏数据
//如果用户要求再次发送激活码
include'config.php';
if($Resend==1)
{
$query="select*fromals_signupwhereUserName='$UserName1'andEmail='$Email1'";
$result=mysql_query($query);
$row=mysql_fetch_array($result);
if($row)
{
$actNum=$row["actNum"];
$subject="激活码";
$message="您的激活码为:
$actNum";
mail($Email1,$subject,$message);
?
>
激活码已经重新发送,请登陆邮箱获取激活码。
点击这里重新激活。
php
}
else
{
?
>
用户名或者电子邮件错误。