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中實現