2012-07-31 128 views
1

可能重複破壞:
Destroy or unset session when user close the browser without clicking on logoutPHP會議上就關閉瀏覽器

我實現我的客戶交談腳本。我面對的問題是,如果用戶註銷,我可以編程以結束他的聊天狀態爲離線狀態,因爲狀態在用戶登錄時設置爲1,但我很困惑,如果用戶關閉瀏覽器沒有註銷。在這種情況下,數據庫中的狀態保持爲1,因爲用戶尚未註銷。

希望你明白這個問題。請幫忙。

回答

2

假設您正在使用基於cookie的會話,請非常積極地設置超時。

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime

你也可以掛接到通過JavaScript瀏覽器的卸載事件,並引發快速的AJAX請求到服務器,破壞了會議。

http://eureka.ykyuen.info/2011/02/22/jquery-javascript-capture-the-browser-or-tab-closed-event/

我不靠這個客戶端實現,雖然 - 如果瀏覽器崩潰,或用戶強制關閉它,可能不會觸發事件。考慮到用戶,瀏覽器本身也可能會限制完成一個onunload事件的時間。這兩種方法的組合可能是最有效的。

+0

可能這是我正在尋找的......但我不確定它是否工作...第二個......感謝您的及時幫助! – Anwar 2012-07-31 18:26:01

2

當會話cookie過期或在一段時間不活動後,將用戶設置爲在數據庫中脫機。

您可以檢查每個請求。