2010-07-27 29 views
2

我一直有這個問題一段時間了,我不完全知道,如果這是問題,但我很有信心,它是,我我記得我的會話設置在1周後過期了,但是當我在幾小時不活動後進入我的網站時,我記得我的會話不見了,我檢查了我的服務器tmp dir,會話平面文件不見了,我認爲是發生的是一些PHP會話垃圾收集器現在每隔一段時間運行一次,但我不希望它刪除這些要存儲一週的會話,如何修改此行爲?PHP會話垃圾收集成爲一個煩惱,我需要一些幫助來修改此行爲

+0

使用cookie而不是會話變量進行設置。如果用戶關閉瀏覽器,它將會消失。 – phidah 2010-07-27 19:02:07

回答

2

你混淆了兩件事。

  • 「記住我」機制不依賴於會話。它依賴於存儲用於啓動會話的憑證的cookie。在這種情況下,您必須設置cookie以便持續一週。見this answer
  • 如果您只想延長會話的生存期,則必須將會話cookie的生存期延長至一週,並延遲垃圾回收。這完成更改session.gc_maxlifetime
+0

[這裏有一個很好的關於「記住我」的問題](http://stackoverflow.com/questions/1354999/keep-me-logged-in-the-best-approach)以及如何以獨立的方式實現它曲奇餅。 – Charles 2010-07-27 19:06:50

+0

好的,如果是這樣的話,那麼我可以看到php設置的cookie,它表示它將在7天后的某個日期到期,但即使會話cookie存在,爲什麼它不會再次初始化會話,我這意味着我有一個cookie,它會留在那裏的未來7天,但是當我訪問該網站與該cookie我仍然被採取登錄,..任何想法? – 2010-07-27 19:11:04

+0

@ Charles,呵呵再次感謝您的幫助,您最後的解釋讓我大開眼界 – 2010-07-27 19:12:16