你好,我試圖想出一種方法來更新我的數據庫,如果用戶沒有正確註銷。利用session.gc_maxlifetime似乎是正確的做法。當生命週期到期並且垃圾收集器銷燬會話時是否可以調用一個函數?另外gc_maxlifetime如何重置其計時器?是否有一些$ _SESSION變量更新?或只是一個客戶端請求?調用一個函數@垃圾回收
我試過找到解決方案,但它們都涉及用戶交互,例如我設置了一個自定義會話計時器,如果用戶在被停用太長時間之後與網頁進行交互,「註銷」功能將被踢出,會話被銷燬。
你好,我試圖想出一種方法來更新我的數據庫,如果用戶沒有正確註銷。利用session.gc_maxlifetime似乎是正確的做法。當生命週期到期並且垃圾收集器銷燬會話時是否可以調用一個函數?另外gc_maxlifetime如何重置其計時器?是否有一些$ _SESSION變量更新?或只是一個客戶端請求?調用一個函數@垃圾回收
我試過找到解決方案,但它們都涉及用戶交互,例如我設置了一個自定義會話計時器,如果用戶在被停用太長時間之後與網頁進行交互,「註銷」功能將被踢出,會話被銷燬。
您可以通過writing your own session handler與會話GC掛鉤並將其應用於session_set_save_handler()
。當需要執行GC會話時,將調用gc
參數給出的函數。
注意,這些函數只獲得訪問序列會話數據,並且該會話使用的序列化格式是微妙的不同比正常的PHP序列化方法。如果您在GC流程中嘗試讀取用戶數據,那麼這樣做不會太有趣。
取而代之,您可能希望單獨記錄用會話ID附加的用戶活動,並將不活動作爲單獨的機制跟蹤不活動&。
*「相反,您可能需要單獨記錄用會話ID附加的用戶活動,並將不活動和缺乏註銷作爲單獨機制進行跟蹤。」*所以cron作業然後:-) – 2012-12-09 19:42:10
或合理的傳真。但是,是的,克朗將是最容易處理的。 – Charles
你的鏈接在這裏似乎沒有去:( – bobkingof12vs
聽起來像一個定期cronjob給我的任務。 – 2012-12-09 19:04:01
好的,謝謝你會讀到它。你能告訴我有關gc_maxlifetime定時器重置如何工作的任何信息嗎? – user1683645