我试图决定是否应将变量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();
}
}
答案 0 :(得分:0)
在您的情况下,您应该同时使用
isset 用于检查用户是否已登录,会话的值用于检查用户是否具有管理员权限。
EX:
if (isset ($_SESSION['user']))
{
// User logged in
if ($_SESSION['user'] === 1)
{
// User is admin
}
}
*为了使您理解,使用 isset 时,只需检查会话是否存在而不是会话的值,因此,如果会话存在,则用户已登录,然后在检查时会话的值,您可以确定登录用户是否具有管理员权限。