2014-03-29 22 views
0

我有一個數據庫表來保存用戶活動的日誌。它通過每頁頂部的登錄檢查腳本在網站上存儲他們的最新活動,當他們瀏覽新頁面時,它將活動時間更新爲NOW。然後,當他們註銷時,它將立即放入他們的「最後一次在線時間」。通過這種方式,我可以在網站上創建一個「誰在線上」的列表,並且當有人再次登錄時,我可以通過查看上次在線存儲的時間告訴他們上次上線後的新帖子和活動。當用戶上次在線

但是,如果有人不註銷我注意到有幾個人在做的事情,他們的上次在線時間不會更新,而自上次訪問後的新活動將無法正常工作。

我正在使用php和會話數據,目前還沒有cookie,我想編寫一個'保持登錄狀態'的功能,這將不得不使用cookie,我認爲他們可能會提供幫助。

我在想我可能會更新每個頁面上的一個cookie與他們的最新活動時間,然後再做一次檢查,看看時間是否超過幾個小時前或類似的東西。有沒有人有任何建議?

感謝

+0

去年看出,更新創建一個列這就是你需要的時間戳 –

+0

謝謝,這就是我已經作爲我的'上次在線',以及我最近的活動逐頁得到更新,但如果他們不記錄日誌,我如何保持上次在線更新出來嗎?當你再次登錄時,你最近的活動會更新到現在,所以對此沒有好處。 –

回答

0

在過去的在線功能只是把時間和日期戳成一個數據庫和裝載到「最後一次看到名單。然後爲了讓我登錄部分保存密碼的MD5哈希到cookie中,並檢查登錄(使用JavaScript)。

1

只需設置最後一個在線cookie(使用密鑰進行散列以避免僞造),並在每次有人查看頁面時進行更新。你在正確的軌道上。

我認爲問題在於用戶只是關閉他們的瀏覽器選項卡而不是註銷,並且它不會觸發更改數據庫中時間戳的腳本?還是說用戶只是將這個標籤留下了無數的時間?

無論如何,檢查餅乾應利用此功能照顧你(不要忘了密鑰哈希它雖然!懶惰是安全的殺手。)

+0

有人只是關閉他們的瀏覽器,因此不會觸發正確的腳本。並感謝您的安全提示!到目前爲止,我一直都很懶惰。伊克。我會看看我如何使用cookie,謝謝! –

相關問題