我们可以为普通用户和管理员用户提供两个不同的会话名称吗?

问题描述 投票:0回答:1

这适用于普通用户。

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

我有不同的管理员登录页面,这会工作。

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

有一个普通的仪表板和管理仪表板。因此,如果会话是admin_username,则应将用户重定向到管理仪表板,如果会话是用户名,则应将用户定向到正常的仪表板。这种方法是否容易出现任何错误或冲突?

我也可以有一个会话名称检查会话是否为空,如果$ _SESSION ['username']等于admin的用户名重定向到管理仪表板,否则是普通用户。

哪种方法更好?

php
1个回答
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"
}
© www.soinside.com 2019 - 2024. All rights reserved.