检查用户权限的DRY原则,如何避免每页重复代码?

问题描述

我必须开发具有不同访问级别的页面的网站。数据库中已经有 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();
        }

伪代码:

  1. 开始测试
  2. 从数据库中选择权限 user = $SESS[user]
  3. 用实际需要的权限检查选择结果权限

是否可以避免在每个页面上只更改 REQUIRED_RIGHTS 的相同代码?如何在 PHP 中使用一些可变参数 USER,REQUIRED_RIGHTS 包含它?

解决方法

Actum Ne Agas: “不要做已经完成的事情!”

在我看来,您似乎要开始“完全从头开始创建网站”。相反,为什么不评估为 PHP 开发的许多框架,并将您的新网站基于其中之一?

框架为许多常见问题提供了强大的解决方案,例如这个问题。 (他们每个人都倾向于以不同的方式做到这一点。)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...