2009-12-14 16 views

回答

6

你可以創建一個使用fwrite寫你的事件日誌文件的功能。

如:

function logEvent($message) { 
    if ($message != '') { 
     // Add a timestamp to the start of the $message 
     $message = date("Y/m/d H:i:s").': '.$message; 
     $fp = fopen('/path/to/log.txt', 'a'); 
     fwrite($fp, $message."\n"); 
     fclose($fp); 
    } 
} 

你也應該補充檢查該文件是可寫的,你可以找到的代碼爲fwrite頁面上。

對於每個事件你提到的,你可以再做:

// Log that user has started playing 
logEvent('User '.$user.' has started playing Battleships.'); 

它擴大到包括/做你想做的。

編輯:您已編輯您的問題,但我會在這裏留下我的答案,因爲您可能會發現它的用處。正如其他人已經提到的,你真的不能可靠地告訴人們什麼時候關閉了瀏覽器窗口。也改爲追加而不是覆蓋。

+0

謝謝,我想我會在給出的函數和其他想法的基礎上做這項工作,我在發佈之前。對於編輯問題,我想確保問題不含糊。 – Newb 2009-12-14 12:01:59

+0

沒問題。編輯信息更多的是其他人在編輯它後查看問題並查看我的答案似乎並不特別相關。 好,我希望你能給它增加更多的東西。很高興它讓你開始。 – 2009-12-14 13:45:10

0

你什麼意思通過播放完畢多少?你如何定義這一點。沒有JS,用戶不知道何時離開頁面。

但是你必須詳細說明這些事件給你的建議意味着什麼。

您可以最準確地記錄每次用戶點擊一個頁面。然後當沒有活動的某個時間過去時,用戶停止播放。

+0

關閉瀏覽器窗口。 – Newb 2009-12-14 11:43:17

+0

有沒有像只記錄一切的功能? – Newb 2009-12-14 11:43:51

+0

對於給定的PHP頁面? – Newb 2009-12-14 11:44:36

0

如果你在PHP5上,那麼你可以看看使用sqlite,它將信息存儲在文本文件中。

可能需要一些時間來解決它,但你也可以看看在PEAR :: Log中使用庫,它提供了一個非常簡單的日誌記錄機制。

http://pear.php.net/package/Log

+0

閱讀它... – Newb 2009-12-14 11:54:08

+0

Newblet頭痛... – Newb 2009-12-14 11:59:34

+0

這只是日誌記錄的一部分。但他仍然不知道他是如何得到這些數據的。 – Ikke 2009-12-14 12:07:38