2012-07-30 24 views
1

我想是能夠保存會話變量12小時,以便用戶不需要重新登錄。運行PHP中的長期會話和垃圾收集

我使用類似這個:

if(ini_get('session.gc_maxlifetime') !== 3600*12) { 
    ini_set('session.gc_maxlifetime', 3600*12); 
} 
if(ini_get('session.cookie_lifetime') !== 3600*12) { 
    ini_set('session.cookie_lifetime', 3600*12); 
} 

session_start();  

而且我已經迴應了變量,他們都設置正確。但只要瀏覽器被關閉,會話就會被破壞,用戶必須登錄。

我最近讀過(但現在找不到資源),應該更改長時間運行的會話cookie的位置文件夾,因爲垃圾採集。

Where /如何配置?

謝謝!

回答

1

此代碼看起來沒問題。 您應該首先在客戶端檢查PHPSESSID Cookie,以確保它真的在12小時內過期。由於您在說「只要瀏覽器被關閉,會話就會被破壞,用戶必須登錄」,因此cookie不會在+12小時後過期。您是否在設置會話後啓動會話?變量?

+0

是的,我之後使用session_start()。我已經添加了這個編輯。 – lexeme 2012-07-30 07:59:55

+0

瀏覽器中的PHPSESSID cookie如何? – Eugene 2012-07-30 08:04:30

+0

我應該驗證什麼?它的存在?它存在。我使用'Chrome開發人員工具'進行了檢查。 – lexeme 2012-07-30 10:31:10