2013-02-01 32 views
2

我有一個關於學校項目的問題。當某人的會話結束時,我該如何做一個動作?例如,我想刪除一個用戶在會話結束時登錄的文件。如果他關閉了瀏覽器,或者他暫時沒有做任何請求?如何在會話以php結束時做些什麼

+4

使用自定義會話處理程序: http://php.net/manual/en/class.sessionhandler.php。 –

回答

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