2015-05-04 270 views
-2

我有一個PHP用戶身份驗證腳本,但它無法正常工作。我試圖執行以下操作:用戶身份驗證不起作用

  1. 返回如果會話變量「過期」是過去,或者如果用戶既不是管理員,也不是登錄到登錄頁面
  2. ,否則設置。會話變量「過期」到time()+ 300並重定向到主頁。

    $case1 = (isset($_SESSION["expires"]) && $_SESSION["expires"] > time()); 
    $case2 = ($_SESSION["user_id"] == "ADMIN" || $_SESSION["user_id"] != ""); 
    $case3 = (isset($_SESSION["user_id"]) && (case2)); 
    
    if (case1 || case3) { 
        // redirect to home page 
    } 
    else // redirect to login page 
    
+0

爲什麼你檢查是否'isset($ _ SESSION [「user_ID的」])'*後*您實際上已經用它上線前? – Eggplant

+0

[**未定義的常量**,這就是你使用錯誤報告時應該得到的。](http://php.net/manual/en/function.error-reporting.php) –

+0

對不起,這是我的在堆棧溢出的第一篇文章,我有麻煩的發佈代碼的指示。我的實際腳本上有適當的變量符號「$」。 – user4816830

回答

2
if (case1 || case3) { 

應該

if ($case1 || $case3) { 

而且

$case3 = (isset($_SESSION["user_id"]) && (case2)); 

情況下2也應該開始$

$case3 = (isset($_SESSION["user_id"]) && ($case2)); 

就像是創建一個變量時,使用一個變量時,就應該開始以$

+2

而上面的case2應該是$ case2。所有變量都以$開頭。 – kainaw

+1

*「還應該以$」開始 - - [否則....](http://stackoverflow.com/questions/30032780/user-authentication-not-working#comment48181718_30032780) –