2016-03-18 89 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沒有持續 –