保存会话以传递到其他页面

时间:2013-02-22 10:34:50

标签: php session session-variables

我有一个用户管理系统,其中用户类型是“管理员”和“用户”。如果登录用户是admin,则可以访问少量页面。如果角色是用户,则他只能访问一个页面。我需要保存admin / user的会话,并且每次检查他是否为“admin”,以便用户只通过传递URL就不会非法访问信息。现在我可以保存用户名但不保存他的角色。如何将ROLE传递给下一组页面。

Home.php

   session_start();
   if( $_SESSION["logging"] && $_SESSION["logged"] )
  {
  echo $_SESSION[user];
  //Can be accessed only by admin 
  dashboard();
  }
  if(!$_SESSION["logging"])
   { 
  $number_of_rows=checkpass();
     if($number_of_rows==1)
        {   
         $_SESSION[user]=$_GET[userlogin];
         $_SESSION[logged]=true;
         print"<h1>you have loged in successfully</h1>";
         if($res['ROLE']=='user')
         {
                      //Accessible only by user.
         print "<h3><a href='user.php'>View Users</a></h3>";
                 logout();
         }
        }
        else
        {
            print "Please enter your log in information!";  
            loginform();
        }
    } 
    function checkpass()
    {
     //Database query
     if($res['ROLE']=='admin')
     { 
       //Redirected 
       dashboard();
     }

2 个答案:

答案 0 :(得分:1)

使用此

if($res['ROLE']=='user')
{
     $_SESSION['ROLE'] = "user";
                  //Accessible only by user.
     print "<h3><a href='user.php'>View Users</a></h3>";
     logout();
}

if($res['ROLE']=='admin')
 { 
   $_SESSION['ROLE'] = "admin";
   //Redirected 
   dashboard();
 }

用于在其他页面中使用ROLE

echo $_SESSION['ROLE'];

答案 1 :(得分:1)

添加这是必需的

$_SESSION['role']= role of the user;

在其他页面中获取$ _SESSION ['role']。