php - 当我在页面之间移动时:我失去了我的会话变量
问题描述
我有一个相当简单的 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 页..... 页面输出
对于页面 2 (session check.php) 页面输出
我不知道我哪里出错了。
- 我还没有关闭会话或“取消设置”任一页面中的变量的代码。
- 除了数据库连接之外,没有别的东西。
我正在尝试与更下游的变量进行交互...不确定是否需要将会话 ID 与页面请求一起发送,例如:/xyz.php?=SessionID
不确定这是否会破坏获得实际数据的目的存储在服务器上的会话?
非常感谢任何帮助。先感谢您
解决方案
您需要调用
session_start();
在你的check.php
太。
推荐阅读
- python-3.x - 如何在列表中查找列表的重叠
- powershell - 有没有办法通过 Powershell 判断是否为 Office 365 中的邮箱权限启用了自动映射?
- flutter - 如何修复它谷歌地图颤动网络
- javascript - 聚合查找作为数组一部分的对象
- discord.py - 在 disocrd.py 中我的 automod 系统有问题
- android-studio - 我无法运行 android studio 模拟器
- vector - 在 Rust 中就地删除连续的重复元素
- php - 如何使用类对象而不是 symfony 中的传统 getData() 方法在控制器中捕获表单数据
- python - 该单词在文本文件中出现了多少行?
- ios - 有没有办法在 swift 中将 func 参数声明为变量?