如何在 PHP 登录函数中添加用户访问级别

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

我开发了一个 PHP 登录/注册脚本,当用户登录时,它会启动一个会话并创建一个 cookie,然后使用以下内容将用户重定向到 dashboard.php:

$_SESSION['email'] = $emailAddress;
if($remember == 'on') { // if "keep user logged in" was ticked
setcookie("email",$emailAddress,time()+7200); // keep user logged in for 2 hours
}
header("location: dashboard.php");

在我所有受限页面的顶部(例如 dashboard.php)我有:

if(logged_in()) { // if user logged in, show page

logged_in() 函数是:

function logged_in(){
    if(isset($_SESSION['email']) || isset($_COOKIE['email'])) {
        return true;
    } else {
        return false;
    }
}

在数据库中,我有一个标题为

usrUserTypeNo
的列,管理员是“1”,普通用户是“3”。 我如何将这种访问级别合并到 logged_in 函数中,以便用户可以看到内容,或者根据他们拥有的号码重定向到其他地方?

我还没有尝试过任何可能的解决方案,但是我想知道是否有更简单的方法将其合并到实际的 logged_in() 函数中,而不是在任何内容之前进行 SELECT * 查询,然后添加条件是否

usrUserTypeNo
是 1 或 3.

php authentication validation mysqli
1个回答
0
投票

我想知道是否有更简单的方法将其合并到实际的 logged_in() 函数中,而不是在任何内容之前进行 SELECT * 查询,然后为 usrUserTypeNo 是 1 还是 3 添加条件。

不是真的。

如果您想做三种不同的事情之一(未登录操作、正常用户操作、管理员用户操作),那么您必须测试这些状态并为每个状态编写逻辑。

您可以将访问级别存储在会话中,而不是每次都从数据库中请求它。

© www.soinside.com 2019 - 2024. All rights reserved.