2010-07-21 100 views
2

我正在使用身份驗證組件和會話組件來存儲我的購物車的電子商務項目。即使瀏覽器處於活動狀態,CakePHP會話也會過期

問題是即使我正在主動瀏覽網站,會話在一段時間後突然被清除。我知道這應該是因爲會話超時,但只是增加超時值不是我正在尋找的解決方案。

我希望會話僅在用戶關閉瀏覽器時過期。這可以實現嗎?

+0

哦......即使我正在主動點擊我的購物車,我的環節也已經清除。我的代碼有什麼問題嗎? – 2010-07-22 21:08:55

+0

檢查你的php.ini設置。 – Leo 2010-07-21 17:21:17

回答

1

AFAIK你所能做的就是在將來設置一個會話超時變量。瀏覽器關閉時會自動清除會話(除非您設置了記住我類型的cookie)。把它放在未來將有效地完成你需要做的事情。

進入會話需要多長時間?它應該只在用戶閒置一段時間後超時。如果它在兩次請求之間超時,並且您知道超時時間尚未過去,您還有其他問題正在進行。 core.php文件中有關安全級別和會話超時的設置是什麼?

+0

嘿,謝謝你的回覆。我已將Security.level設置爲高,並將Session.timeout設置爲120秒。根據您的建議,我可以將超時設置爲更高的值,但在這種情況下,即使我可以關閉瀏覽器並稍後再返回,會話也會保持活動狀態。無論如何,我想沒有辦法確定瀏覽器是否在客戶端被關閉。 – 2010-07-22 09:52:41

+0

將安全級別設置爲高,除了會話超時IIRC之外還有其他影響。它增加了referer檢查當中等|高。當設置爲高時,它將在*每個*請求之間重新生成會話ID。我建議你把它變成中等。然後,當你關閉瀏覽器(整個瀏覽器必須退出,而不僅僅是該選項卡...檢查你的任務管理器,以確保它已經消失),它會關閉會話。是的,你不能確定瀏覽器是否關閉客戶端。 – 2010-07-22 15:55:12

+0

好的,謝謝......我已將它更改爲中等,至今爲止工作狀況良好! :) – 2010-08-04 23:10:50

相關問題