2014-09-20 65 views
0

假設我正在運行應用程序(PHP & MYSQL)
並且在此應用程序中有一個user table用於存儲用戶信息。
用戶table column name檢查用戶角色和用戶限制

id user_name password role

有用於訪問應用程序的一些用戶角色。 i) All
ii) Read only
iii) Edit
iv) Entery only
v) Etc.

I'was店有作用與,現在我不理解如何檢查該應用程序的用戶角色和代碼分離...

我正在嘗試類似的東西..

$roles = implode(「.」,$_SESSION[‘user_role’]); 
If(array_key_exist(「all」,$roles) && array_key_exist(「edit」,$roles)){ 
    // do some stuff... 
} 
If(array_key_exist(「read only」,$roles)){ 
    // do some stuff... 
} 

是它做的正確的方式/檢查角色或請給我一些建議,如果有這樣做的..謝謝

+1

那麼,一種方法是從數據庫中查詢用戶,然後評估他們的「角色」字段。你可以使用'switch'來根據他們的'role'執行代碼。但是,您可能希望稍微調整您的權限模型。像'Entry only'這樣的權限可能更適合'Edit'。你可以做的另一件事是簡單地評估操作,並確保登錄的用戶被允許執行該操作。 – Crackertastic 2014-09-20 18:22:38

回答

1

首先,假設你$_SESSION包含字符串用逗號分隔的角色,你需要另一種最好的方法explode(',', $_SESSION['user_role'])它得到一個角色數組。

要檢查某個角色是否包含在該陣列中,請使用in_array("All", $roles)而不是array_key_exists(),該鍵只會搜索鍵而不是值。

+0

是的,有幾個錯誤,因爲我直接在這裏寫所有的代碼沒有任何方法,謝謝糾正。 – 2014-09-20 18:32:19

+0

你應該先試着運行你的代碼,然後再問。網上有很多教程。 – andy 2014-09-20 18:36:02

+0

謝謝安迪..請分享我一些教程相關問題的鏈接。 – 2014-09-20 19:20:17