我想創建一個基於文章的網站使用codeigniter。當要求從數據庫中提取任何文章以供查看時,我使用以下代碼在稱爲「點擊」的單獨表格中標記每篇文章的獨特視圖的數量。什麼是最有效的方法來保持uniqie文章視圖的數量
mysql_query("INSERT INTO hits(ip,article_slug,hitcount)
VALUES('$ip_address','$id',1)
ON DUPLICATE KEY UPDATE hitcount=hitcount+0");
我取用戶的IP地址,從$ this-> uri-> segment(3)獲取article_slug的值; 然後運行上面的mysql查詢。
我在此處使用IP地址來獲取唯一視圖的數量,但突然想到幾個人可能會使用相同的IP地址。所以在這種情況下,我上面的查詢似乎並不有效。
所以我想知道什麼是最有效的方法來做到這一點。我的一位朋友正在談論使用Cookie而不是IP地址來做這件事。你認爲它是一個好主意還是有更好的方法呢?
您能否給我一個關於如何做到這一點的想法?
感謝提前:)
餅乾不會給你一個明確的計數,因爲它們總是可以被清除,然後你會重新計算同一臺機器。 – gorelative
我不認爲這是可能的,你想要的水平。我有一個動態IP。如果我查看網站,它會增加點擊次數,但我是同一個人。或者可以共享ip。意味着你的命中次數會少於它應該是的。 – itachi
我不認爲有一個簡單的方法來做到這一點。您不能依靠IP地址或Cookie來可靠地識別個人。如果您讓用戶註冊然後登錄,然後才能看到每個頁面,然後跟蹤這些點擊,但您可能會得到稍微更準確的結果,但是設置這些內容需要做大量的工作;強迫人們登錄閱讀文章會將人們從您的網站上關閉;而且無法保證某人只有一個帳戶。也就是說,如果你準備接受一些不確定性,我會推薦cookie方法。 – andrewsi