【问题标题】:Session variables don't get passed to the third page after session start会话开始后会话变量不会传递到第三页
【发布时间】:2013-08-06 21:21:16
【问题描述】:

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

登录.php:

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

?>

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();
}``

?>

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();
}*/``

?>

当我使用 href=menu.php 单击 home.php 中的链接时,我收到一个错误,即未定义索引登录

【问题讨论】:

  • 傻事要检查:你在第三个脚本中session_start() 吗?
  • ...在输出任何东西之前?
  • 向我们展示每个文件的前几行。另外,当您说“从 home.php 打开 menu.php”时,您是指第一个示例中的包含或重定向吗?
  • 似乎不是一个常见问题。一点点 sn-p 你的代码可能会有所帮助..
  • 在任一测试中您是否使用http

标签: session-variables php


【解决方案1】:

我不知道你的objects.php里有什么,调用会话应该在这之前。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多