0

我有一个用户管理系统,其中用户的类型是“管理员”和“用户”。如果登录用户是管理员,他可以访问几个页面。如果角色是用户,他只能访问一页。我需要保存管理员/用户的会话,并每次检查他是否是“管理员”,这样用户就不会通过传递 URL 来非法访问信息。现在我可以只保存用户的名字,但不能保存他的角色。我该怎么做才能将角色传递给下一组页面。

主页.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();
     }
4

2 回答 2

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'];
于 2013-02-22T10:37:11.140 回答
1

添加这是曾经需要的

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

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

于 2013-02-22T10:37:14.583 回答