【问题标题】:When I move between pages: I loose my session variables当我在页面之间移动时:我失去了我的会话变量
【发布时间】:2020-11-02 10:10:52
【问题描述】:

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

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

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

  • 我查看了很多示例代码等
  • 查看了 StackOverflow 上的一堆问题:看不到问题出在哪里。

我的代码如下:

第 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 页..... page output

对于第 2 页(会话 check.php) Page output

我不知道我哪里出错了。

  • 我还没有关闭会话或“取消设置”任一页面中的变量的代码。
  • 除了数据库连接外,没有别的。

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

非常感谢任何帮助。 提前谢谢你

【问题讨论】:

  • 请注意:我意识到我有一个错误 inline 14 page 2 应该是:$_SESSION['Acct'] ...当我输入问题时这是一个错误...这个至少是整理出来的。

标签: php session-variables


【解决方案1】:

你需要调用

session_start();

也在你的check.php 中。

【讨论】:

  • 真的 - 非常感谢!立即工作。如此简单的错过。
  • 嗨,显然我的声誉评分很慢(我在这里相对较新)它没有记录我的上升。但是当我弄清楚时,我一定会确保它完成。 :-)
  • 不用担心@user3053941。很高兴我能帮到你!
猜你喜欢
  • 2012-06-15
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2014-08-23
  • 1970-01-01
  • 2014-04-03
  • 1970-01-01
相关资源
最近更新 更多