2016-11-25 81 views
2

我在IIS 8.5上運行PHP 5.6。我用這個測試日誌:PHP會話重置

echo '<p>'.sizeof($_SESSION).' - '.session_id().' - '.ini_get('session.cookie_domain').'</p>';

有了它,我看到$_SESSION有一些元素,cookie_domain在php.ini中是作爲我的域名設置正確,但session_id()對每個頁面加載不同的字符串。每頁加載時都會調用session_start()

任何想法,我可以做什麼使會議持續?

$sessionfile = ini_get('session.save_path') . '/' . 'sess_'.session_id();顯示會話文件的位置。我可以打開它並且數據在那裏。事實上,這是創建每個會話的一部分,而不是保存文件。

是否有可能是一些IIS設置或一些ASP重置會話?

+0

你在'session_start();'後面調用這段代碼? – OptimusCrime

+0

是的,session_start()是運行的第一件事情之一。 – Hikari

回答

0

如果您沒有權限將會話存儲在您的IIS中,則會出現此問題的次數最多。很久以前我有同樣的問題。更正權限或會話路徑解決了我的問題。

+0

我明白了。但我相信這不是問題,因爲我能夠找到會話文件並將其打開並將數據保存在該文件中。有些東西正在重置會話,可能是存儲其引用的cookie。 – Hikari