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

Php 我们可以为普通用户和管理员用户提供两个不同的会话名称吗?,php,Php,这是给普通用户的 if($pass) { /*password is correct*/ session_start(); $_SESSION['username'] = $username; } 我有不同的管理员登录页面,这将工作 if($pass) { /*password is correct*/ session_start(); $_SESSI

这是给普通用户的

if($pass) {
            /*password is correct*/
            session_start();
            $_SESSION['username'] = $username;
}
我有不同的管理员登录页面,这将工作

if($pass) {
            /*password is correct*/
            session_start();
            $_SESSION['admin_username'] = $username;
}
有一个普通的仪表板和管理仪表板。因此,如果会话是admin_username,那么用户应该重定向到admin dashboard,如果会话是username,那么用户应该重定向到普通dashboard。此方法是否容易出现错误或冲突

我还可以有一个会话名称来检查会话是否为空,以及$\u session['username']是否等于admin重定向到admin dashboard的username,或者它是否是普通用户

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

哪种方法更好?

我建议您将用户名与角色分开。 您可以使用admin指示符添加单独的会话参数

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"
}

我建议您将用户名与角色分开。 您可以使用admin指示符添加单独的会话参数

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"
}

您自己命名的第二个选项是通常所做的,它与会话名称无关,只是一个自定义变量。此设计建议您可以同时登录两个用户,只要他们属于不同类型。你真的这么想吗?你自己命名的第二个选项是通常要做的。这与会话名称无关,它只是一个自定义变量。此设计建议您可以同时登录两个用户,只要他们属于不同类型。你真的这么想吗?