2016-03-18 129 views
0

我遇到了会话问题,在没有通过隐身浏览器浏览网站时,在我的网站上重定向后,会话不会持续存在。我尝试用一​​个简单的脚本替换代码,该脚本将会话变量“test”设置为“asdasd”。PHP会话在浏览器外不会持续存在

session_start(); 
session_regenerate_id(true); 
$_SESSION['test'] = 'asdasd'; 
header("Location: ../results.php"); 
session_write_close(); 

结果页面如下

session_start(); 
session_regenerate_id(true); 
var_dump($_SESSION); 
session_write_close(); 

但每当我试图运行设置会话脚本,该数据不会在结果页依然存在。但是当我尝试在Chrome的隐身模式下进行测试时,它可以正常工作。我已经尝试清除缓存并重新启动浏览器,数据仍然不会持久。这可能是什么原因?

编辑:我将愉快地提供有关配置中的任何信息,如果它要帮助

+0

你是这家伙的同事吗? http://stackoverflow.com/questions/36081321/i-just-cant-see-what-i-am-doing-wrong-with-this-code-php – Aleeeeee

+0

反正我与他无关抱歉 –

+0

'session_regenerate_id (true);'应该删除旧的会话数据不是吗? – apokryfos

回答

0

这可能是因为,如果Location头在相同的反应中发现的Set-Cookie头没有被处理。

这是依赖于浏览器的,所以可能很难说。

+0

如果是这种情况,我将如何去测试它? –

+0

只要尝试在页面中使用标题(“Set-Cookie”)和标题(“位置”),并查看cookie是否实际上由浏览器存储(查看其设置)。 – blue112

+0

我尝试使用setcookie()函数(我不确定它是否与标头(“Set-Cookie”)相同),而不是尝试并传递值,但即使cookie没有持续 –