Php - 会话变量

Php - Session Variables

我正在尝试为我的网站制作一个管理面板。当没有足够的权限重定向时,我想检查当前登录用户的权限。

我尝试了很多方法,但无法正常工作! 当我用这段代码回显所有会话变量时会出现:

echo '<pre>';
var_dump($_SESSION);
echo '</pre>';

这显示:

array(2) {
   ["usr_id"]=>
   string(1) "1"
   ["usr_name"]=>
   string(13) "rombie18"
}

现在想获取session变量的权限,看看权限是否够高

我想要这个:

array(2) {
   ["usr_id"]=>
   string(1) "1"
   ["usr_name"]=>
   string(13) "rombie18"
   ["usr_permission"]=>
   string(13) "admin"
}

并检查权限:

if(!$_SESSION['permission'] == 'admin') {
    //redirect
    exit();
}else{
    //do something here.
}

根据您的代码,您应该使用 $_SESSION['usr_permission'] 而不是 $_SESSION['permission']

At first you have to assign your required information in $_SESSION variable while login process execute.

示例:登录过程(定义usr_permission

$result = mysqli_query(..........); //Your user chhecking query
//check if found in data_base by userId and Pass.
$_SESSION["usr_id"]        = $result[0]['usr_id']; //assign usr_id 
$_SESSION["usr_name"]      = $result[0]['usr_name']; //assign usr_name
$_SESSION["usr_permission"]= $result[0]['usr_permission']; //assign usr_permission 

示例:通过 $_SESSION['usr_permission']

检查权限
if(!$_SESSION['usr_permission'] == 'admin') {  //here user same variable name
    //redirect
    exit();
}else{
    //do something here.
}

You have made 2 mistake: you don't assign $_SESSION["usr_permission"] and checking by undefined variable $_SESSION['permission']