用PHP管理用户权限的最佳方法是什么..
1)使用新表?
table user_permissions (id, userId, addNews, editNews, deleteNews, ...)
每个属性列的类型是 boolean (1 => yes,0 => no)
2)使用逻辑门?
$addNews = 1;
$editNews = 2;
$deleteNews = 4;
...
$permissions = $addNews | $editNews | $deleteNews | ...;
//Save permission in user table
//and save it in session on login to test permission in every page
$permissions = $_SESSION['permissions'];
if($permissions & 1) // true -> user has permission to add news
或者您有其他方式?
答案 0 :(得分:2)
没有最好的办法。每种解决方案都取决于您希望如何使用它。
例如,至少您需要回答以下问题:
尽管如此,在您的代码中检查权限会更容易。
function havePermission($name){
// logic
}
NEVER!在代码中进行任何内联权限检查。这是不好的习惯。
此外,实际上有三种存储权限的方法:
您提供的新表格(或您的主要用户表格):
userId, accessNews, accessPages, etc
userId, permissionId
主要用户表,一个字段:
userId, groupId
要么
userId, access
在此解决方案中,在访问中您编写了可以使用布尔逻辑检查的访问矩阵。