今天早些时候我发布了这个问题:$_SESSION variables and id do not carry over between pages on localhost 因为我认为会话不是在页面之间持续存在。这个问题并没有得到很多答案,而且我整天都玩着剧本,我发现如果我这样做:
$_SESSION['UID'] = $id;
session_id($sessID);
echo session_id();
//session_write_close();
//header("Location: /accountwebsite/landing.php");
//exit();
我阻止了重定向以查看问题的开始位置(即会话重置的位置),我注意到尽管echo语句确实输出了正确的ID,但是一旦脚本运行完毕,我仍然在同一页面上如果我转向Firefox选项并查看cookie,会话ID将重置为通用ID。就像在我的脚本中一样,我将它设置为我生成的特殊标记,但在脚本结束时,id被设置回PHP的原始集合。我前往XAMPP保存会话文件的文件夹,我的个人设置ID的文件就在那里,因此是php通用id。
会话必须在脚本结束时重置的原因是什么?我很感激任何帮助,过去3天我一直在研究这个问题,这似乎是一个非常无聊的问题。
修改
我不相信我的问题与另一个问题相同,因为那个页面之间会话的更改/丢失,而我的脚本会在运行的脚本末尾删除会话变量而不会一个额外的session_start()或任何未设置的会话。我的会话保存文件夹具有权限,因为我已经看到写入它的文件。我的浏览器允许使用cookie,因为正如我之前提到的,我在firefox选项>隐私选项卡中看到了sefsion id的值。
编辑2:
在链接的问题中,用户说他们的问题是在托管服务的最后,他们没有设置路径来保存会话的文件。我已经声明我的保存路径已设置,我在XAMPP上本地运行,所以我的问题完全不同,因为它仍然存在。
编辑3:
Arihant问题的解决方案完全不同,因此它必须是一个不同的问题。我只发了这个帖子,因为我发现我的问题实际上并不是我今天早上发布时的想法。我没有在互联网上的任何其他地方遇到过这个问题,每个人的问题都是在不在同一页面上的页面之间会话丢失,并且
我还检查了我在网上找到的所有修复程序。两个php脚本都以session_start()
开头,因此我确信在调用该函数之前不会发送任何内容。我为会话设置了一个tmp目录,它可以工作。我的浏览器启用了Cookie。注册全局变量已关闭。重定向到同一个域。
我甚至检查过我的文件是否有一个不可见的字节顺序标记,该标记将被视为在session_start()
调用之前发送的数据,并且在我的整个文档中没有任何内容使该函数成为第一个被调用的函数。我已经在这个问题上工作了3天,我不能继续前进。我真的尝试了一切。
我意识到,因为我不知道实际问题的原因是什么,我的问题似乎与许多其他问题相同,但我已尝试了这些线程上的所有解决方案,但我仍然没有积极的结果,因此这不是重复。