我在CakePHP中使用數據庫會話,也保存與會話相同的表中的用戶ID。是否有可能在用戶會話過期時以某種方式檢測到,以便我可以更新數據庫中的一個字段?cakephp會話超時更新字段
我需要,以防萬一用戶沒有從網站手動註銷(只關閉瀏覽器或甚至沒有)我可以從表中刪除該會話。
我在CakePHP中使用數據庫會話,也保存與會話相同的表中的用戶ID。是否有可能在用戶會話過期時以某種方式檢測到,以便我可以更新數據庫中的一個字段?cakephp會話超時更新字段
我需要,以防萬一用戶沒有從網站手動註銷(只關閉瀏覽器或甚至沒有)我可以從表中刪除該會話。
會話數據清理依賴於垃圾回收(gc)。這個垃圾收集過程只有在PHP腳本運行時纔會被調用,也就是說,它在清理時不會清理數據,但之後有一段時間另一個PHP腳本正在運行。由於垃圾收集也會佔用一些資源,因此它不會每次都運行,但是每次腳本調用都有一定的可能性。 The default is that gc runs about once every 100 script invocations.
所以你不會看到陳舊的數據立即消失。相反,它最終會被清理掉。
數據庫會話會在一段時間後自動清理,就像常規會話一樣。這是他們的觀點*超時*。你想在這裏手動做什麼? – deceze 2012-03-13 00:04:08
好,那就是我的想法。我有超時到「1」(在中等安全級別,所以我相信100秒超時)。我已經完成了登錄,並且可以在會話數據庫中看到記錄。我一直在從MySQL管理員那裏檢查一段時間(超過30分鐘),刷新頁面並試圖用不同位置的相同用戶名登錄,但該記錄尚未刪除。在完成數據庫表的刷新後,它終於被刪除了。 – Albert 2012-03-13 00:20:12
所以我的問題是,會話超時實際上是如何工作的數據庫會話?究竟是什麼觸發了從該表中刪除記錄的事件?它是否需要訪問該網站?或者當會話過期時發生? – Albert 2012-03-13 00:22:23