在PHP中设置权限级别

时间:2013-11-27 22:04:24

标签: php session

我在PHP中有几个页面,基本上一个是设置会话的登录(包括用户权限)

所以在我的数据库中,我有列用户名,密码,用户,管理员,特殊,并在会话中将它们全部设置

在每个页面上我都有以下代码:

if($_SESSION["special"] != 'yes')
{
echo 'Access Denied!';
exit();
}

所以它会阻止一切运行。

我的所有“管理员”用户都没有“特殊”用户级别,因为他们应该覆盖此权限并且可以访问所有内容,但由于管理员用户没有“特殊”用户权限,上面的代码会运行,阻止用户查看该页面。

如何让'admin'用户完全覆盖这个?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您会遇到以下情况:普通用户可能会或可能不会special == yes,因此可以获得特殊访问权限。管理员有special != yes但仍应获得访问权限吗?

if ($_SESSION['user'] == 'yes' && $_SESSION['special'] != 'yes') {
    echo 'Access Denied!';
    exit;
}

现在,这仅包括用户并且没有特殊访问权限的人员。具有特殊功能的管理员和用户可以访问该网站,就像没有检查过一样。

或者你可以写

if ($_SESSION['admin'] != 'yes' && $_SESSION['special'] != 'yes') {
    echo 'Access Denied!';
    exit;
}

答案 1 :(得分:0)

您的“管理员”用户必须将其他参数定义为管理员,因此请检查:

if(($_SESSION["special"] != 'yes')||(!IS_ADMIN))
{
echo 'Access Denied!';
exit();
}