2017-10-13 65 views
-1

我有一個問題,試圖讓兩個或更多用戶訪問管理頁面。我試着添加一個||在它們之間,但它們對任何一個都不起作用。這個例子中的用戶是xgrh和zeap。任何幫助將不勝感激不知道我做錯了什麼。我遇到問題讓兩個用戶訪問管理頁面

<?php 
    session_start(); 

    if (!isset($_SESSION['uid']) || $_SESSION['lanId'] != 'xgrh'|| $_SESSION['lanId'] != 'zeap') { 
     header('refresh:2;url=http://a0319p528/dc399supplies/index.php'); 

     echo " 
     <div class='container'> 
      <div class='panel panel-danger'> 
       <div class='panel-heading'> <h3>Access Denied!! You will now be redirected back</h3></div> 
       <div class='panel-body'><img src='../admin.jpg'></div> 
      </div> 
     </div>";     
    } 
?> 
+0

更改||到&& ...但這對於更多的用戶來說不會很靈活。您需要擴展它,並使用其他變量來確定它們是否有權訪問。超出問題的範圍。 – IncredibleHat

+0

適用於多個用戶。請發佈這個作爲答案獲得信用 – Donny

+0

其實我認爲我錯了。沒有看到isset上的爆炸聲。 – IncredibleHat

回答

1

根據您的示例代碼,要檢查如果用戶沒有登錄,而不允許兩者之一......這會工作:

if (!isset($_SESSION['uid']) or 
    ($_SESSION['lanId'] != 'xgrh' and $_SESSION['lanId'] != 'zeap')) 
{ 
    ... denied code ... 
} 

首先檢查,如果沒有一個是組。那麼如果兩個都不是合適的用戶。

如果這兩種情況中的任何一種都是真的(因此混合的'或'和'和'),則他們被拒絕訪問。

你也可以做這樣的:

if (!isset($_SESSION['uid']) or !in_array($_SESSION['lanId'],array('xgrh','zeap'))) 
{ 
    ... denied code ... 
}