2012-06-26 45 views
2

我正在用PHP創建一個Intranet。對於不同的用戶(管理員,用戶等)會有不同的權限。 我打算在MySql中僅使用PHP和數據庫以及不同的表。具有權限結構的PHP網站

我想知道哪種方式是編寫Intranet代碼的最簡單和「最適合」的解決方案,以將「user」從「admin」中分離出來。

它是使用一個「index.php」,然後使用if/else方法來顯示基於權限的內容嗎?像這樣:

if ($priv == 'admin') 
    display content for admin 

else if ($priv == 'user') 
    display content for user 

,或者我應該有不同的權限不同的文件,例如,使用一個文件來先檢查權限,然後打開另一個頁面基於它是什麼特權:

If "admin" 
    OPEN index_admin.php 
else if "user" 
    OPEN index_user.php 

只需要一些關於去這裏的方向的建議。

內聯網將是相當簡單,對於一個企業的員工timereporting /時間跟蹤功能報告他們的時間。

感謝

+2

[關鍵詞你正在尋找的是ACL](http://stackoverflow.com/search?q=acl+php) – Gordon

回答

1

你已經得到了你所需要的基本要點,但我建議使用自我處理頁面。如果你沿着重定向路線走,人們可以在瀏覽器中訪問index_admin.php。

我假設你正在使用登錄系統 - 如果是這樣,只需設置一個SQL表,併爲管理員設置一個bool值。那麼我們可以做到;

$sql = SELECT admin FROM users WHERE username = '{$user}'; 
$admin = mysqli_query($sql); 

if ($admin == 1) 
{ 
    // load the admin page 
} 

else 
{ 
    // load the normal user page 
} 

您可以通過將其管理狀態存儲在會話中以提高效率,以避免持續的SQL查詢。

希望這會有所幫助。

  • 銳衡
1

直視會議,並在每個頁面的頂部有這個

<?php session_start(); ?> 

做會話變量的東西,在你的情況

<?php if ($_SESSION['priv'] == $something) { 
//Do stuff HERE 
} else { 
//And So Fourth 
?>