2016-12-14 45 views
0

在我的網站上,login.php頁面(如果成功登錄)將重定向到index.php並啓動會話和2個SESSION變量。在單個頁面上使用多個SESSION變量不起作用

一開始的變量是一個成功消息:

$_SESSION["message"] = "Login successful!"; 

第二個是用戶會話變量:

$_SESSION["authenticatedUserEmail"] = $email; 

的問題是,如果我單獨檢查變量,然後嘗試在index.php頁面上使用它們,只有第一個被選中的項目可以工作。

這下面的代碼片段將顯示$form_message但它不會顯示$_SESSION["authenticatedUserEmail"]

session_start(); 
if(isset($_SESSION["message"])) { 
    $form_message = $_SESSION["message"]; 
    session_unset($_SESSION["message"]); 
    echo $form_message; 
} else { 
    $form_message = ""; 
} 


if (isset($_SESSION["authenticatedUserEmail"])) { 

    echo $_SESSION["authenticatedUserEmail"]; 

} 

它的工作時,我只用一個if(isset($_SESSION聲明,但我不希望總是包括相同的語句中。

我做了一個錯誤檢查:

ini_set('display_errors',1); 
error_reporting(E_ALL); 

,但沒有出現任何錯誤。

任何人都可以請建議爲什麼這可能不工作,或者如果我失去了一些東西?

在此先感謝。

回答

4

session_unset函數釋放所有會話變量。這就是爲什麼當你使用session_unset時,下一個會話變量沒有被創建。請閱讀手冊。

http://php.net/manual/en/function.session-unset.php

達到你想要什麼,你可以使用未設置功能

unset($_SESSION["message"]); 

希望這有助於

+0

謝謝!這工作馬上。 +1 – drew

2

您的電話session_unset是問題所在,您應該簡單地使用unset

session_unset取消整個$_SESSION數組。

相關問題