过滤对管理员的访问权限

时间:2010-01-16 23:54:28

标签: php sql

我有一个侧边菜单,我希望只显示管理员选项,如果用户名是管理员。如果他们是管理员,就在那里,如果他们不是,则显示另一个链接到他们的个人资料。

再次,KISS(保持超级简单)...请我是菜鸟。

由于

3 个答案:

答案 0 :(得分:1)

将数据库'user'表列添加到'is_admin'并为用户

设置

得到价值并且做某事:

if(isadmin($user))
{
  echo "your admin bar";
}

答案 1 :(得分:0)

首先,你去查询是否有任何带有该用户名的记录,并且检查了admin字段。如果有,那么该用户名是管理员。但是,如果有多个用户具有相同的用户名,则无法使用,因此您可能希望使用用户ID。

function check_admin($username)
{
    // Look for a person with that username, and the admin field is set to ON
    $sql = 'SELECT * FROM TABLE WHERE User_Name="'.$username.'" AND Admin=1';
    $result = mysql_query($sql);
    // If there are any results, the person should be an admin (given usernames are unique)
    if(mysql_num_rows($result) !== 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

然后你只需用它作为支票

if(check_admin("bob") == true)
{
     // super secret admin stuff
}

答案 2 :(得分:0)

当用户连接时,您可以在会话变量中存储布尔值,该变量表示用户是否为管理员。然后你可以检索它:

if($_SESSION['admin'])
    echo 'The admin link';
else
    echo 'The profile link';

请参阅the php manual以了解如何使用会话变量。