2017-05-15 95 views
0

我想要:如果用戶註銷(會話銷燬),那麼索引應該說:您已註銷。向用戶顯示他已註銷

if (isset($_SESSION['user']) && $_SESSION['user'] == true) { 
echo "Welcome on the users page!, " . $_SESSION['username'] . "!"; 
    } 
    elseif (!isset($_SESSION['user'])) { 
    echo "You logged out..";} 

我遇到的問題是,它也顯示你登出時,你甚至還沒有登錄,才能夠註銷。我只希望它顯示用戶是否註銷。

另外我只希望「您已註銷」以顯示一次。如果您刷新頁面,應該去

+0

如果你想速戰速決,你應該設置你的$ _SESSION [「用戶」]默認爲false,那麼你重置當你的用戶被註銷。但它不是很乾淨......或者可能只是定義一個其他會話變量,以便只彈出一次錯誤消息。 –

回答

0

而不是使用php unset();函數銷燬會話,實際上可以在$ _SESSION [「user」]中保存boolean「false」;

例如,在您註銷頁:

而不是破壞,設置會話假

例:

`` //當註銷 $ _SESSION [ 「用戶」] = false;

//now to check if user logged out 

if($_SESSION["user"] === false) { 

echo "you logged out"; 

}elseif(!isset($_SESSION["user"])) {//when the session finally expires 
echo " you haven't logged in"; 

}else{ 
echo "you are logged in"; 
} 


//to get rid of it after page reload, you need to unset the SESSION 


unset($_SESSION["user"]); 
+0

現在就可以了,只需要在刷新時找出如何擺脫它。謝謝。 –

+0

你可以通過實際銷燬$ _SESSION ['user'];檢查更新的答案 –

0

這是因爲以下幾個條件:

!isset($_SESSION['user'] 

這是真實的用戶是否登錄與否。所以你必須做一些其他的會話變量來檢查用戶註銷。這隻在用戶註銷時設置。

例:

if(!isset($_SESSION['user'] && isset($_SESSION['logged_out'])) 
{ 
    // isset($_SESSION['user'] to check if user logged out and extra condition to check if user comes here after logged-out. 
} 

,並檢查該索引頁。

+0

我知道爲什麼我的代碼是錯誤的,但如何檢查用戶是否註銷? –

+0

查看更新後的答案 –