8
A
回答
11
使用位或操作符(|)来设置位,使用AND运算符( &)来检查比特。您的代码应该是这样的:
<?php
$guest = 1;
$editor = 2;
$admin = 4;
$user = $editor;
if($user & ($editor | $admin)) {
echo "Test";
}
?>
如果你不懂二进制和什么位运算符做,你应该去了解它。你会明白如何做得更好。
2
它已经,因为我用PHP很长一段时间,但我会认为这将工作:
<?php
$guest = 1;
$editor = 2;
$admin = 4;
$user = $editor;
if(($user == $editor) || ($user == $admin)) {
echo "Test";
}
?>
1
(2 | 4)正在评估为6,但2 == 6为假。
1
@mk:(2 | 4)计算结果为6
1
$guest = 1;
$editor = 2;
$admin = 4;
$user = $editor;
if (user == $editor || $user == $admin) {
echo "Test";
}
1
真棒,这似乎是做权限在CMS的最佳途径。是?没有?
也许,我从来没有真正这样做过。我所做的是使用按位运算符将大量“是或否”设置存储在数据库的单个列中的单个数字中。
我想获得权限,如果你想要在数据库中存储权限,这种方式会很好。如果有人想发布一些内容,而只希望管理员和编辑看到它,你只需要的
($editor | $admin)
结果存储到数据库中,然后检查一下,这样做
if ($user & $database_row['permissions']) {
// display content
} else {
// display permissions error
}
0
在我看来这并不好。我实际上并没有尝试在大型项目中使用它,但CMS使用这种方法听起来很复杂。
6
0
它总是取决于你需要什么。如果你已经知道了Zend Framework,那么我会先介绍一下Zend_Acl/_Auth的建议。但请记住,每个框架都可以提供类似的组件。
想到的另一件事是LiveUser。我也很喜欢与它一起工作。我认为你可以做很多事情,而你的方法看起来很简单,但它也是有限的,因为(通过所有这些if()的),你会把很多ACL逻辑放在正确的位置你的申请。为了保持简单和可扩展性,这不是最重要的事情。 ;)
2
我已经在错误报告中使用了它,它工作得很好。至于用户权限,它应该工作得很好 - 您可以为数据库中的每个用户权限或数据库中的一个用户级别列创建多个列。去这个选项。
相关问题
- 1. 在Android M中实现新权限
- 2. 类别权限在Rails中的实现
- 3. iOS中的权限如何实现
- 4. 在SOA中实现授权
- 5. 基于信誉实现权限
- 6. PHP用户权限 - 最佳实践?
- 7. PHP&权限
- 8. PHP和权限
- 9. PHP权限
- 10. 如何在Java应用程序中实现管理员权限?
- 11. 如何在Grails中实现基于权限的访问控制?
- 12. 如何在博客系统中实现权限?
- 13. 在asp.net Membership中实现细粒度的运行时权限?
- 14. nginx中的PHP shell_exec权限
- 15. Shiro'Any'权限实例
- 16. 在Apache中给予PHP写入权限
- 17. 在PHP中查询MySQL权限
- 18. 在php中管理用户权限
- 19. 设置权限在Fedora中的Apache/PHP
- 20. PHP权限系统
- 21. PHP写权限 - FC13
- 22. PHP权限处理
- 23. PHP文件权限
- 24. PHP文件权限
- 25. 实体框架,WCF和用户权限:如何实现它
- 26. 动作:现在存取权限对象实例
- 27. 在实现SetMyLocationEnabled时不显示'添加权限检查'
- 28. 在asp.net中实现证书授权
- 29. 在php中实现Ajax MVC
- 30. 如何在PHP中实现