会话开始后,会话变量不会传递到第三页

时间:2013-08-06 21:21:16

标签: session-variables php

在我的login.php中启动一个新会话后,我重新连接到home.php并成功加载会话变量。但是当我尝试从home.php打开menu.php并使用会话变量时,这些相同的变量现在是未定义的。我在两次页面更改后都回显了会话ID,并且完全相同。所以有人可以告诉我为什么我会丢失这些变量?

的login.php:

session_start();
 $_SESSION["user"]=$puser;
 $_SESSION["loggedin"]=true;
 echo "<script>window.open('../home.php','_self')</script>";

&GT;

home.php

require("php/objects.php");
session_start();
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"]==true)
{
    $user=$_SESSION["user"];
    $_SESSION["loggedin"]=true;
    echo session_id();
    echo $_SESSION["loggedin"];
}
else
{
    echo "Login Error";
    echo "<script>window.open('default.html','_self')</script>";
    exit();
}``

&GT;

menu.php

require("objects.php");
session_start();
echo session_id();
echo $_SESSION["loggedin"];
/*if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"]==true)
{
    $user=$_SESSION["user"];
    $utype=isset($user->salary)?"staff":"client";

}
else
{
    echo "Login Error";
    echo "<script>window.open('../default.html','_self')</script>";
    exit();
}*/``

&GT;

当我使用href = menu.php点击home.php中的链接时,我收到错误,指出登录的内容未定义

1 个答案:

答案 0 :(得分:0)

我不知道你的objects.php中有什么内容,调用会话可能应该在那之前。

session_start();
require("objects.php");
echo session_id();
echo $_SESSION["loggedin"];