当我在页面之间移动时:我释放了会话变量



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

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

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

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

我的代码如下:

第1页:(我忽略了DB连接-我知道这是有效的(本节前面有一些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>';

第二页(/sessioncheck.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
不确定这是否会破坏将实际数据存储在服务器上的会话中的目的?

非常感谢您的帮助。提前感谢

您需要调用

session_start();

在您的check.php中。

相关内容

最新更新