2011-03-27 63 views
1

林在一個網站上,我關閉所有的窗戶,我回去了,當然我登錄。每次訪問,新會話(請)?

我需要的是網站做的,否則。當我回去時不要登錄 - 在每次訪問中立即創建一個新的會話並始終保持它(不超時)。

有什麼事情,我應該注意我這樣做,因爲我設法做到這一點的地方阿帕奇當一個合乎邏輯的解釋,但它不聯機工作?

並感謝:)

+0

Similar questions:http://stackoverflow.com/questions/959655/destroy-session-on-window-close, http://stackoverflow.com/search?q=php%20session%20browser%20close – Nazariy 2011-03-27 23:30:59

回答

2

當你做餅乾,設置在過去的到期日期。它應該允許您保持會話登錄狀態,但是一旦您關閉了瀏覽器,瀏覽器就會清除過時的cookie和會話的cookie jar。

+0

Thanx標記,將cookie過期日期設置爲純'0'即可解決此問題。 – Xfile 2011-03-28 19:52:33

0

如果你確實關閉所有窗口(不只是所有的標籤!),那麼會話cookie應該被遺忘 - 一個新的瀏覽器窗口會現場應無會話cookie傳遞,提示PHP創建新的會話。如果您的網站是不是總是這樣,那麼它可能是使用session.cookie_lifetime 0以外,使得PHP創建一個永久性的Cookie,而不是一個會話cookie。

PHP也有每次運行時摧毀舊的會話,爲了從已經有一段時間沒有被使用的會話中回收空間的一些機會。在php.ini中session.*性質決定哪些會話得到清理(session.gc_maxlifetime)和頻率(session.gc_probabilitysession.gc_divisor)。如果您希望會話時間更長,請將gc_maxlifetime設置爲更高的值。如果你希望他們永遠有效,且設置gc_probability 0 - 但是這是一個壞主意,因爲會議將永遠不會被自動清除,並且會慢慢填滿驅動器。

+0

Thanx趙,這很有幫助。我一直在尋找這個建議,並且解決了這個問題。 – Xfile 2011-03-28 19:56:21