2016-12-14 15 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数组。

相关问题