計算註冊用戶在網站上花費的總時間的最佳方式是什麼? ...在這些情況下 1)用戶正常註銷。 2)用戶可以簡單地關閉瀏覽器。 3)用戶下次回來時可以自動登錄。PHP,如何計算用戶的總在線時間?
我認爲最好的方法是找到用戶在每個頁面上花費的時間,並不斷檢查整個網站,並將它們添加到他的總時間中。但我不知道如何實現....請幫助
計算註冊用戶在網站上花費的總時間的最佳方式是什麼? ...在這些情況下 1)用戶正常註銷。 2)用戶可以簡單地關閉瀏覽器。 3)用戶下次回來時可以自動登錄。PHP,如何計算用戶的總在線時間?
我認爲最好的方法是找到用戶在每個頁面上花費的時間,並不斷檢查整個網站,並將它們添加到他的總時間中。但我不知道如何實現....請幫助
除非他退出,否則無法找到他離開系統的確切時間。即使那樣,他可能會在退出時瀏覽網站。
這樣做的大致方法是在會話中設置開始時間,並在每次訪問頁面時不斷增加時間。
所以第一次的用戶來到你的網站在時間T,你會
對於所有後續請求,你會
這種方法不給你的用戶在最後一頁上花費的時間。但它會給你一些工作。
使用會話ID來跟蹤個別會話。
雖然這可能是解決問題的有價值的提示,但一個好的答案也可以說明解決方案。請[編輯]提供示例代碼來展示你的意思。或者,可以考慮將其寫爲註釋。 –
@TobySpeight感謝您對6歲以上問題的回答發表評論。 – Steve
您有兩種方法,可以在您的數據庫中創建一個日誌表以跟蹤每個用戶(通過ID)登錄和註銷,然後計算特定用戶在每條記錄中的兩個時間差,然後將所有那。或者你變得更加複雜,並在你的DB-> usertable(logintime'timestamp' - logouttime'timestamp' - lastactive'timestamp' - onlinetime'int')中創建4列,並按照用戶活動。然後在系統創建新會話並編寫代碼以檢查'logouttime'是否與'lastactive'時間不相同之前,更改第105行的System/libraries目錄中的Session.php腳本(以避免會話如果兩個字段都不相同,則更新數據庫以使'logouttime'等於'lastactive',然後在第107行完全匹配:$this->sess_update();
編寫代碼以檢查'logouttime'是否等於'lastactive' (並且你會在你的logout.php腳本中更早地發生這種情況)編寫一個代碼來計算'logintime'和now'time()'之間的差異來計算在線時間,並將結果添加到'onlinetime'字段。但是如果'logoutime'與'lastactive'不一樣(這意味着用戶在線並在您的網站上進行活動,因爲您正在跟蹤他並經常更新'lastactive'字段),然後編寫一個代碼來計算在線時間由'lastactive'和'現在時間'的時間()'之間的差異,並將結果添加到'在線時間'字段。這樣你就可以在線上時間永遠記錄在線時間!我希望你能幫我解決問題,因爲這些例子會有很長的腳本(儘管我不介意按要求分享)。祝你好運。
你可以用JavaScript和一個單獨的PHP腳本來做到這一點。 JavaScript代碼響應意味着用戶處於活動狀態的事件(如鼠標/鍵盤/調整大小事件)並調用php腳本。
php腳本比較最後一次收到請求的時間和當前時間,並檢查差異是否超過了某個閾值(我建議大約10-30分鐘來防止單擊會話累計)發生。
如果未達到閾值,則將兩個時間戳之間的差值添加到數據庫中的總和中。
之後(在這兩種情況下)最後的請求時間被設置爲當前時間並且腳本結束。
如果您還想知道用戶何時關閉網站頁面,則可以訂閱卸載事件和/或實現每X秒調用一次PHP腳本的心跳腳本。
另請參閱http://stackoverflow.com/questions/1777089/measuring-online-time-on-website,http://stackoverflow.com/questions/1323375/how-to-measure-visiting-time-of -a-user –