普通用户和管理员用户可以有两个不同的会话名称吗?

时间:2019-01-02 08:02:08

标签: php

这是针对普通用户的。

if($pass) {
            /*password is correct*/
            session_start();
            $_SESSION['username'] = $username;
}

我具有用于管理员的其他登录页面,这样可以正常工作。

if($pass) {
            /*password is correct*/
            session_start();
            $_SESSION['admin_username'] = $username;
}

有一个正常的仪表板和管理仪表板。因此,如果会话为admin_username,则应将用户重定向到管理仪表板,如果会话为username,则应将用户定向到普通仪表板。这种方法容易出错吗?

如果会话不为空,并且$ _SESSION ['username']等于admin的用户名,我还可以使用一个会话名称进行检查。

哪种方法更好?

1 个答案:

答案 0 :(得分:2)

我建议您从角色中拆分用户名。 您可以使用管理指示器添加单独的会话参数

if($pass) {
    /*password is correct*/
    session_start();
    $_SESSION['username'] = $username;
    $_SESSION['isAdmin'] = true;
}

但是请记住,当您要添加第三个角色时,应将其保存在会话中。

if($pass) {
    /*password is correct*/
    session_start();
    $_SESSION['username'] = $username;
    $_SESSION['role'] = "Admin"; // Or "Moderator" or  "User"
}