我有一些$_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
这样的网址,它会按预期工作。我认为这是一个缓存问题,我补充道:
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
个变量。即使我也清除了缓存。
答案 0 :(得分:0)
首先确保在代码中的所有内容之前设置了函数session_start()。 无法设置$ _SESSION的原因: 在标题之前设置$ _SESSION时。所以你应该把函数session_write_close()放在标题之前。 或者您的缓存有问题。