标头后 PHP 会话被破坏/丢失

新手上路,请多包涵

我有一个脚本,在使用 header() 重定向到 / 之前设置一些会话值。

我读过很多关于 $_SESSION 变量在 header() 之后被销毁/丢失的帖子,即使在我实现这个之后:

 // set session here

session_regenerate_id(true);
session_write_close();
header("Location: /");

session_start() 设置在正确的位置,有人知道我可能遗漏了什么吗?

在 index.php 页面上我有这个:

 session_start();
print_r($_SESSION);

// outputs nothing :'(

代码比较复杂,就不贴了,只贴几个。

原文由 Ben Everard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 627
2 个回答

为了结束这个问题,我们得出结论,这是服务器配置的问题,考虑到主机以此类问题而闻名,这不足为奇。

原文由 Ben Everard 发布,翻译遵循 CC BY-SA 2.5 许可协议

由于使用位置标头,我从未见过任何与会话相关的问题 - 你确定你在两个页面上都调用了 session_start 吗?


嗯…在您添加上面的 session_start 位之前,这个答案更有意义,并提到您确定您正在使用 session_start 的事实。 :-)

原文由 John Parker 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题