我应该使用$ _SESSION还是isset($ _ SESSION)

时间:2018-12-29 13:28:52

标签: php session

我试图决定是否应将变量isset用于基于权限的检查,例如检查用户是否为管理员。到目前为止,使用isset一直运行良好,但是除非我省略了isset,否则我的其中一个页面无法正常工作。

根据我的理解,第一个if条件使用isset,因为它正在检查u_uid是否存在,但是在比较数字(例如用户是否为管理员)时,我会阅读然后我应该使用不带isset的$ _session ?我在这里有点困惑

我尝试了with和not isset,对于我的其中一个页面,使用isset时效果更好

<?php
include_once __DIR__.'/header2.php';
if(!isset($_SESSION['u_uid'])) {
    echo "<meta http-equiv='refresh' content='0;url=index.php?create_music_cat=notlogin'>";
    exit();
} else {
    if($_SESSION['u_permission'] == 0){
        echo "<meta http-equiv='refresh' content='0;url=header2.php?create_music_cat=nopermission'>";
        exit();

    }
}

1 个答案:

答案 0 :(得分:0)

在您的情况下,您应该同时使用

isset 用于检查用户是否已登录,会话的值用于检查用户是否具有管理员权限。

EX:

if (isset ($_SESSION['user']))
{
 // User logged in
 if ($_SESSION['user'] === 1)
 {
  // User is admin
 }
}

*为了使您理解,使用 isset 时,只需检查会话是否存在而不是会话的值,因此,如果会话存在,则用户已登录,然后在检查时会话的值,您可以确定登录用户是否具有管理员权限。