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

Ben*_*ard 15 php session header

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

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

// set session here

session_regenerate_id(true);
session_write_close();
header("Location: /");
Run Code Online (Sandbox Code Playgroud)

session_start() 设置在正确的地方,有没有人知道我可能会遗失的任何东西?

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

session_start();
print_r($_SESSION);

// outputs nothing :'(
Run Code Online (Sandbox Code Playgroud)

代码非常复杂,所以不会发布,只是片段.

Joh*_*ker 11

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


嗯......在你添加上面的session_start位之前,这个答案更有意义,并提到了你确定使用的是session_start这一事实.:-)


str*_*ade 5

必须在会话结束前发送标头

session_regenerate_id(true);

header("Location: /");
// the header must be sent before session close
session_write_close(); // here you could also use exit();
Run Code Online (Sandbox Code Playgroud)


Ben*_*ard 3

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