2017-07-29 29 views
0

我希望我的網站可以通過會話或cookie進行訪問。但是在編寫這段代碼後,頁面需要兩個條件成爲真,而不是一個。 這裏有什麼問題?此代碼重定向到登錄頁面,而不是停留在同一主頁。

<?php 
    if(((isset($_SESSION['SUCCESS']) && $_SESSION['SUCCESS'] != "") || 
    (isset($_COOKIE['is_logged_in']) && $_COOKIE['is_logged_in'] != "")) 
    == false){ 
     $_SESSION['ERROR'] = "Please login first"; 
     header('location: login.php'); 
    } 

?> 
+1

嘗試將它分成嘗試一個'的if..else if..'和測試。 –

回答

0
if(isset($_COOKIE['is_logged_in']) && $_COOKIE['is_logged_in'] != ""){ 
    if(!isset($_SESSION['SUCCESS'])){ 
     $_SESSION['SUCCESS'] = true;//or whatever you want 
    } 
} 

再檢查會議

if(!isset($_SESSION['SUCCESS']) || $_SESSION['SUCCESS'] == ""){ 
    $_SESSION['ERROR'] = "Please login first"; 
    header('location: login.php'); 
}else{ 
    //move to home page 
} 
+0

雖然試圖登錄,如果我不檢查「記住我」,它不會讓我訪問主頁。所以這意味着如果不使用cookie,我將無法登錄。 –

+0

@OzThewizard嘗試更新代碼 – programmingArrow

+0

爲什麼我先前放的代碼不適合你?它爲我工作。 – programmingArrow

0

無需編寫== false。與刪除它

if((isset($_SESSION['SUCCESS']) && $_SESSION['SUCCESS'] != "") || 
(isset($_COOKIE['is_logged_in']) && $_COOKIE['is_logged_in'] != "") 
){ 
    $_SESSION['ERROR'] = "Please login first"; 
    header('location: login.php'); 
} 
+0

這樣可以直接訪問主頁而無需登錄。 –

相關問題