php实现登陆页面验证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、通过Se ssion实现用户登录验证
s essio n习惯上被译为会话,它的设计是为了在一个访问期间在不同的页面间传输数据,以解决h ttp协议无状态的问题。
在PH P中有一系列处理se ssion的函数,如表1所示。
表1 常用处理se ssion的函数
其中s essio n_reg ister()函数的作用是注册新的变量,它会在全局变量中增加1个变量到目前的se ssion之中,以后其他页面可以通过se ssion_is_r egist ered()函数检测该sess ion变量是否已经注册。
二、通过ses sion来检测用户登录信息,由两个文件组成,log in.ph p为用户登录页面,c heckl ogin.php用于检测账号、密码和是否登录成功。
logi n.php的代码如下:
<?p hp
se ssion_star t();//初始化s essio n
if(isse t($_S ESSIO N['sh ili']))
{
head er("L ocati on:sh ili.p hp"); //重新定向到其他页面
e xit();
}
?>
<sc riptlangu age="javas cript">
fu nctio n che cklog in(){
if((logi e rname.valu e!="")&&(l ogin.passw ord.v alue!=""))
{
retu rn tr ue;//判断用户名和密码不为空,返回T RUE
}
el se
{
al ert ("昵称或密码不能为空!")
}
}
</scri pt>
<style type="tex t/css">
.s tyle1 { fo nt-si ze: 13px; font-fami ly: "黑体"; font-weig ht: n ormal; c olor: #0099FF;} </s tyle>
<div alig n="ce nter">
<fo rm na me="l ogin" meth od="p ost"actio n="ch ecklo gin.p hp" o nSubm it="r eturn
chec klogi n()">
<tab le wi dth="260"borde r="1" bgco lor="#D8EF FA">
<tr a lign="cent er">
<td h eight="30" cols pan="2"><s pan c lass="styl e1">管理系统登录</spa n></t d>
</tr>
<tr>
<td wi dth="90" a lign="cent er" c lass="styl e1">管理员: </td>
<td w idth="170" heig ht="20" al ign="left" vali gn="m iddle"><in put n ame="usern ame"type="text" id="user name" size="20"></td>
</t r>
<t r>
<t d ali gn="c enter" cla ss="s tyle1">密码: </td>
<td heig ht="20" al ign="left" vali gn="m iddle"><in put n ame="passw ord"
type="pass word" id="passw ord"size="20"></td>
</tr>
<tr>
<td alig n="ce nter" clas s="st yle1"></td>
<td heig ht="20" al ign="cente r"><i nputtype="subm it" n ame="Submi t" va lue="登录"></td>
</tr>
</ta ble>
</for m>
</div>
check login.php的代码如下:
<?ph p
se ssion_star t (); //初始s essio n
if(isse t ($_SESSI ON['s hili']))
{
head er ("Locat ion:s hili.php") ; //重新定向到其他页面
ex it ;
} //登录过的话立即结束
$shi li_na me=$_POST['user name'] ; //获取参数
$passw ord=$_POST['pas sword'] ;
//验证管理员名称和密码是否正确,这里采用直接验证,没有连接数据库
i f ($s hili_name=="mr" and$pass word=="mrs oft")
{
se ssion_regi ster("shi li"); //注册新的变量,保存当前会话的昵称
$s hili= $sh ili_n ame ;
echo "<fo nt co lor=r ed>登录成功!</font>" ;
h eader ("Lo catio n:shi li.ph p") ;//登录成功重定向到管理页面
}
else
{
ec ho "<table widt h='100%' a lign=cente r><tr><tdalign=cent er>";
ech o "账号或密码错误,或者不是管理员账号<br>" ;
ec ho "<fontcolor=red>登录失败!</fon t><br><a h ref='login.php'>请重新输入</a>"; ec ho "</td></tr></tabl e>" ;
}
>
shil i.php的代码如下:(实验简单验证)
<?php
e cho "Welco me to My W orld!";
>
三、这是一个简单的用户登录验证的程序,通过ses sion变量阻止了那些没有登录而直接浏览的用户。
如果想要对某个页面限制浏览的用户,可以使用同样的方式,只要把如下的代码放在该页面的开头即可:
<?ph p
se ssion_star t ();
if(!iss et ($_SESS ION['shili'])){
echo "<palign=cent er>";
ech o "<f ont c olor=#ff0000 si ze=5><stro ng><b ig>";
ech o "你没有登录,请<a hr ef='d englu.php'>登录</a>!";
ech o "</big></stro ng></font></p>" ;
ex it () ;
}
>
。