如何有效地检查PHP会话中的角色?

如何有效地检查PHP会话中的角色?,php,session,Php,Session,我现在正在处理的项目有多个需要不同访问级别的站点部分。我为普通用户、管理员和超级用户设置了角色。现在,我正在用以下内容验证角色: <?php session_start(); $reqrole = "user"; $admin = "admin"; $superuser = "superuser"; if(!isset($_SESSION['user'])) { header("Location:login.html"); }

我现在正在处理的项目有多个需要不同访问级别的站点部分。我为普通用户、管理员和超级用户设置了角色。现在,我正在用以下内容验证角色:

<?php   
session_start();
$reqrole = "user";
$admin = "admin";
$superuser = "superuser";

if(!isset($_SESSION['user']))
       {
           header("Location:login.html");  
       }
       if(!isset($_SESSION['role']))
       {
           header("Location:login.html");  
       }
       if ($_SESSION['role'] != $reqrole and $_SESSION['role'] != $superuser and $_SESSION['role'] != $admin)
       {
           header("Location:login.html");  
       }
?>


因此,每次我想更改允许访问页面或添加新页面的角色时,我都必须更改if语句,这似乎不是最好的方法。有人知道更好的方法吗?

看看一些PHP框架中ACL的实现,也许“高效”是离题的。你应该带着这个问题去代码评审。那么,对于非工作代码,是否可以将角色保存在数组中?然后,您只需在中更改数组和,如果您可以在\u array()中使用