作者:牛仔曼宁 | 来源:互联网 | 2014-06-18 09:01
我们先来讲述一下利用session来登录,登录页面05php的代码如下:<?phpsession_start();初始化sessionif(isset($_SESSION[&39;shili&39;
我们先来讲述一下利用session来登录,登录页面05.php的代码如下:
-
- if (isset ($_SESSION[&#39;shili&#39;])){
- header ("Location:shili.php") ;
- exit ; } ?>
-
-
-
该程序是一个管理员登录界面,首先初始化session,然后通过检测session变量是否已经注册来检测用户是否已经登录过,如果登录过,则无需再次登录,直接定向到其他页面。这里还使用了Javascript来判断是否输入了用户名和密码。
验证登录的页面,06.php的代码如下:
-
- if (isset ($_SESSION[&#39;shili&#39;])){
- header ("Location:shili.php") ;
- exit ; }
- $shili_name=$_POST[&#39;username&#39;] ;
- $password=$_POST[&#39;password&#39;] ;
-
- if ($shili_name=="mr" and $password=="mrsoft"){
- session_register ("shili") ;
- $shili = $shili_name ;
- echo "登录成功!" ;
- header ("Location:shili.php") ;
- }else{
- echo "
" ;
- echo "账号或密码错误,或者不是管理员账号
" ;
- echo "登录失败!
请重新输入";
- echo "
|
" ; }
- ?>
该程序同样是先通过session变量检测用户是否已经登录,如果没有,则要对输入的用户名和密码进行验证,正确则注册session变量,输出登录成功!。如不正确,则提示登录失败。
这是一个简单的用户登录验证的程序,通过session变量阻止了那些没有登录而直接浏览的用户。如果想要对某个页面限制浏览的用户,可以使用同样的方式,只要把如下的代码放在该页面的开头即可:
- if (!isset ($_SESSION[&#39;shili&#39;])){
- echo "
"
;
- echo "" ;
- echo "你没有登录,请登录!" ;
- echo "" ;
- exit () ; }
- ?>
利用session_id实现共享登录
多服务器共享session问题,这个大家应该都能够理解的,当一个网站的用户量过大,就会使用服务器集群,例如专门有一个登录用的服务器。用户通过登录服务器登录之后,登录服务器保存了用户的登录信息session,而其他受访问的服务器,例如电影服务器没有这个session,那么我们就要通过一个session的唯一标识来共享这个session了——具体session的共享超出了本文的范围,请自行查阅资料。
第二个用途就是,验证同一用户的不同会话,这个比较难理解。这样说吧,一个用户并非通过浏览器来请求连接,而是通过socket或者其它方式来请求数据的时候,我们首先要对他进行用户登录验证,验证成功之后,就下发一个sessionid给他,然后他每次请求的时候就携带这个sessionid,我们通过这个sessionid来判断session是否已经存在,如果存在我们就认定用户已经登录……
对于第一个问题,我们可以把sessionid保存在数据库中得以实现,这个方法比较安全而且应用广泛,但是不是我们讨论的范围哦,首先验证的时候产生一个sessionid;代码如下:
- Session_start();
- $sessionId = session_id();
-
- .........
- ?>
客户端携带sessionid这个变量来请求数据,代码如下:
- Session_id(‘$sessionid&#39;);
- Session_start();
- ?>
好了不问题己得到了很好的解决有需要了解的朋友可以参考一下。