首页 > 解决方案 > 当我在页面之间移动时:我失去了我的会话变量

问题描述

我有一个相当简单的 PHP 页面,它检查数据库中的帐户名称值。计划是:如果帐户详细信息在那里,那么我将登录标志设置为 true,存储几个额外的会话变量,然后移动到另一个页面。我的下一页检查会话变量的内容,然后继续向用户展示一些选项。

问题是:虽然会话 ID 和会话变量在第一页中设置。第二页看不到值。

我在这里看不到我做错了什么:

我的代码如下:

第 1 页:(我省略了数据库连接 - 我知道这是有效的)本节前面有一些 If 语句,这基本上意味着我只有在设置了各种字段时才能进入这一部分。正如您从页面输出 (1) 中看到的那样……我可以看到我需要的所有数据。

        session_start();
                echo '<p>checking $AN :' . $AN;
                $_SESSION['Status']= true;
                $_SESSION['Acct'] = $AN;
           
           // debug details - echo details to screen to check values

            $check = $_SESSION['Status'];
            $name = $_SESSION['Acct'];

            echo '<br>logon status :' . $check;
            echo '<br>logon Acct : ' . $name;
            echo '<br> session ID = :'. session_id();
            echo '<a href="/sessioncheck.php" target="_self">click here</a>';

第二页 (/sessionsheck.php)

$check = $_SESSION['Status'];
$name = $_SESSION['Acct'];

echo '<br>logon status :' . $check;
echo '<br>logon Acct : ' . $name;

echo '<br>session stats : ' . $_SESSION['Status'] . ' + ' . $_SESSION['acct'];
echo '<br> session ID :' . session_id();

我的输出如下所示:

在我点击链接之前的第 1 页..... 页面输出

对于页面 2 (session check.php) 页面输出

我不知道我哪里出错了。

我正在尝试与更下游的变量进行交互...不确定是否需要将会话 ID 与页面请求一起发送,例如:/xyz.php?=SessionID
不确定这是否会破坏获得实际数据的目的存储在服务器上的会话?

非常感谢任何帮助。先感谢您

标签: phpsession-variables

解决方案


您需要调用

session_start();

在你的check.php太。


推荐阅读