我已將它設置爲我在每個視圖中記錄一個名爲question_views
的表,因此每個用戶只能計算一次。如何實現未註冊用戶的查看次數?
不過,我有一個問題。現在,當您未登錄時,視圖計數會不斷增加,因爲我無法識別未註冊的人員(或未登錄的人員)。
這是我如何進入用戶到數據庫時,他們查看:
function add_view($user, $question) {
$ts = time();
$check = mysql_num_rows(mysql_query("SELECT * FROM question_views WHERE user='$user' AND question_id=$question"));
if($check==0) {
mysql_query("UPDATE questions SET views=views+1 WHERE qid=$question");
mysql_query("INSERT INTO question_views (user,question_id,date) VALUES ($user,$question,$ts)");
}
}
當用戶沒有登錄,$_SESSION['userid']
(這是什麼時候被調用的函數傳遞)沒有按」 t甚至存在。
什麼是使觀看計數系統計數每個觀衆只有一次,包括未登記的人的好辦法?
編輯:當然有沒有辦法做到這一點可靠。但有是這樣做至少有點好。
沒有辦法可靠地做到這一點。您可以嘗試使用IP地址,會話,cookie或三者的任意組合。但在一天結束的時候,你不可靠。 – Corbin
好的。什麼是雖然downvote?誰低估了它,謝謝花時間解釋。 – Nathan
@Nathan如果你設置了'$ _SESSION ['userid'] ='guest_',它會完全破壞你的系統。 uniqid();'這樣未登錄的用戶被賦予一個訪客用戶ID?當然,人們只需要禁用cookie就可以不斷增加查看次數,但這可能會起作用。 – drew010