我有一個關於學校項目的問題。當某人的會話結束時,我該如何做一個動作?例如,我想刪除一個用戶在會話結束時登錄的文件。如果他關閉了瀏覽器,或者他暫時沒有做任何請求?如何在會話以php結束時做些什麼
2
A
回答
1
您可以通過編寫自定義會話處理程序來完成此操作。
在這個網站上,你會發現一個合適的解釋:
http://phpmaster.com/writing-custom-session-handlers/
但是,要知道,「垃圾收集」(如你想要做清理文件)不直接發生後會議閉幕!
PHP使用一個設置「session.gc_probability合」,指出每一次請求XXX,PHP將尋找老/閉門會議,並開始做垃圾回收
http://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability
4
沒有辦法直接跟蹤這個。然而,您可以使用數據庫並在用戶最後一次加載頁面時存儲數據庫,然後在所有X分鐘內運行cron作業,以檢查哪些用戶在最近Y分鐘內沒有做任何事情。
+1
這比自定義會話處理程序更可靠,並試圖依賴於GC。 – ficuscr
相關問題
- 1. 什麼時候PHP會話結束?
- 2. for循環結束時做些什麼
- 3. 播放結束時做些什麼
- 4. addEventListener結束時會做什麼?
- 5. PHP在會話被破壞時做些什麼
- 6. PHP結束會話?
- 7. 響應結束後做些什麼?
- 8. wc命令結束後會做什麼?
- 9. die()以PHP結束會話嗎?
- 10. 如何在請求結束時在控制器內部做些什麼?
- 11. 如果TestFlight會話沒有以「會話結束」日誌結束,會發生什麼情況?
- 12. 爲什麼我的會話結束?
- 13. 會話結束時的PHP事件?
- 14. PHP - 無法結束會話
- 15. PHP - 結束會話ID
- 16. 會話如何結束 - session.abandon或超時
- 17. 爲什麼會話結束時還會銷燬cookie?
- 18. 爲什麼在清除緩存時會話結束
- 19. 通話在Android中結束時會觸發什麼事件?
- 20. 當文本到語音結束時做些什麼
- 21. 如何檢測會話何時結束。 PHP
- 22. 爲什麼選擇0會在循環結束時結束?
- 23. 如何在春季結束會話3
- 24. 當child_added完成時會做些什麼
- 25. Web會話何時開始和結束?
- 26. 什麼時候該結束Flurry會議?
- 27. 爲什麼它不會結束有時
- 28. 如何在會話超時或結束時註銷用戶
- 29. 我能做些什麼 PHP
- 30. 如何知道什麼時候所有的AJAX通話結束
使用自定義會話處理程序: http://php.net/manual/en/class.sessionhandler.php。 –