2016-02-01 77 views
0

我正在使用CodeIgniter v3。我想存儲用戶登錄和註銷時間。當用戶登錄,存儲登錄時間和單擊登出按鈕時,更新表中的用戶記錄。當他/她點擊登錄按鈕時,這種情況很好。Codeigniter:存儲用戶登錄和登出時間

但有兩個問題,如果點擊沒有發生:

  1. 當會話過期(2小時後)
  2. 時關閉瀏覽器窗口/標籤

對於第一個問題,在接下來的登錄,我添加2小時以上最後登錄時間並更新最後一條記錄(不是當前記錄)。但這並不準確,因爲用戶可能會重新加載並延長會話到期時間。例如:用戶在下午5點30分登錄。並在接下來的兩個小時內多次重新加載頁面並延長會話到期時間。

如果上次重新裝入時間是下午8:00,會話將在下午10點過期,但我在晚上7:30存儲。註銷時間!第二,沒有!

任何幫助,而且這方面的問題可以理解的指南......

+0

將'logged_out'列重命名爲'last_seen'。每當用戶執行任何操作時更新此列 – Steve

回答

1
  • 添加所謂的像每次session_timeactive_last 然後另一個日期時間字段一個登錄的用戶沒有做任何事情 - 包括當他們第一次登錄 - 你在那個領域記錄時間。 。

  • 創建一個腳本,每15分鐘運行一次。它首先檢查字段 session_logout_time,如果有值則忽略該記錄。如果沒有值,則會在session_timeactive_last中查找。如果該值超過兩個小時,則會將session_timeactive_last的值增加2小時,並將其寫入session_logout_time