【发布时间】:2021-06-22 18:54:03
【问题描述】:
我必须开发具有不同访问级别的页面的网站。 db 中已经有 users 表,对于需要权限检查的第一页,此代码工作得很好
$row = mysqli_fetch_assoc($res);
$bitmask = $row['Rights'];
$bm = new bitmask();
$permarr = $bm->getPermissions($bitmask);
if (!($permarr["admin"] || $permarr['superAdmin'])){
$home_url = '../auth-login.php';
header("Location: $home_url");
echo 'access denied';
exit();
}
伪代码:
- 开始会话
- 从
user = $SESS[user]的数据库中选择权限 - 用实际需要的权限检查选择结果权限
是否可以避免在每个页面上只更改REQUIRED_RIGHTS 的相同代码?如何在 PHP 中使用一些可变参数 USER、REQUIRED_RIGHTS 来实现这一点?
【问题讨论】:
-
我看到您正在使用
$permarr["admin"]例如作为指定卷。您设置访问名册的方式是否仍然可以更改,还是我们应该认为这是固定的? -
我的位掩码类有 8 个角色,作为 BYTE 存储在 DB 中。添加更多角色不可能只有这 8 个 - stackoverflow.com/questions/66788824/…
-
@RakeshKumarOad:感谢您想在这里编辑问题。一点反馈:值得注意的是,代码格式本身就很好,也不需要加粗。此外,编程语言、库、软件等本身不是代码,因此不需要在预格式化中呈现。
标签: php session access-rights