我试图学习在我的应用程序中使用按位权限。问题是,它不起作用:(
当用户登录时,我在会话中保存一个用户对象,如下所示:
[user] => User Object
(
[id] => 1
[firstname] => Firstname
[lastname] => Lastname
[emailaddress] => email@adres
[permissions] => 16
)
我有一个名为 authenticate 的类,我在其中定义了一些内容,它们是:
class authenticate {
const GUEST = 1; // 1
const USER = 10; // 2
const MODERATOR = 1000; // 8
const ADMIN = 10000; // 16
现在,当用户以管理员身份登录时,我想确保该用户具有管理员权限,我尝试以这种方式进行检查:
if ($_SESSION['user']->permissions & authenticate::ADMIN){
echo 'yep admin';
}else {
echo 'no admin';
}
当我有一个用户确实可以说有一个数字 8 作为权限时,它不是管理员,它应该说没有管理员.. 但它并不总是说是管理员..
谁能告诉我我在这里做错了什么?
谢谢!