2

我有一些$_SESSION变量在我的整个网站上都能正常工作:

print_r($_SESSION)印刷

Array ( [first_name] => Daniel [last_name] => Jameson [email] => email@gmail.com [logged_in] => 1 )

但是,由于某种原因, index.php 上的变量都未设置:

print_r($_SESSION)印刷

Array ( )

如果我将 index.php 重命名为 index2.php,它们都可以工作!这意味着代码本身很好,但由于某种原因,index.php 的文件名/路径是问题所在。

我最近被列入 mod_security 块的白名单,这可能是问题的原因吗?也许与文件权限有关?这超出了我的专业范围...

编辑

如果我尝试像.../index.php?blah预期的那样工作的 URL。认为这是我添加的缓存问题:

header('Cache-Control: no-store, private, no-cache, must-revalidate');     // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false);  // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');                  // Date in the past  
header('Expires: 0', false); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header ('Pragma: no-cache');

但 index.php 仍然取消设置$_SESSION变量。即使我也清除了缓存。

4

1 回答 1

0

首先确保您的函数 session_start() 设置在代码中的所有内容之前。无法设置 $_SESSION 的原因:当您在标题之前设置 $_SESSION 时。所以你应该把函数 session_write_close() 放在标题之前。或者你的缓存有问题。

于 2013-07-16T08:23:16.063 回答