2012-01-14 85 views
0

我有一個使用PHP和MySQL的組合來保持的時間的頁面已刷新數的流水賬簡單的網頁瀏覽跟蹤器。我只需要知道發生的原始數字刷新就沒有複雜的cookie。爲什麼我的PHP頁面視圖跟蹤器不工作

它看起來像這樣...

$link = mysql_connect('**********', '*********', '***********'); 
if (!$link) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("**********", $link); 

$query = mysql_query("select value from settings where title like 'search_number'"); 
$result = mysql_fetch_array($query); 
$search_number = $result["value"]; 
$new_search_number = $search_number + 1; 
mysql_query("update settings set value='$new_search_number' where title like 'search_number'"); 

此代碼出現在所有我能夠運行的測試工作,但在網站上標出它返回高得離譜的數字。我們平均400-500據雅虎查詢了一天,「我們使用的搜索老大」,但頁面跟蹤報道8900+每天查詢。 Google分析確認了雅虎的編號。我不明白這個代碼是如何因簡單而失敗的。我希望有人能夠闡明發生了什麼。

+0

我想我們需要知道了很多關於你的網站/網頁架構,以及如何該位腳本被調用。如果它被包含/需要,你可能會每頁多次調用它?在一個側面說明:您可以肯定這兩個查詢組合僅僅是這樣的:「設定值更新設置=價值+ 1,其中標題像‘search_number’」。不確定MySQL的語法,但在MSSQL中起作用。 – MikeMurko 2012-01-14 19:39:24

回答

2

機器人就會更經常比你想象的打你的頁面。你可以比較你的服務器日誌,我懷疑你會看到你的頁面有很多請求。

此外,谷歌Analytics(分析)的工作原理客戶端,需要JavaScript,並且不會始終運行。據預測,這將佔頁面瀏覽量的10%左右。不過,大部分區別在於Google Analytics會過濾掉很多機器人隨機點擊,因爲即使運行分析代碼也幾乎沒有機器人。

另一方面,你做查詢的方式有點不穩定。我建議學習如何使用PDO執行準備好的查詢,以避免SQL注入攻擊。

1

更新在MySQL direcly值,否則贊同腳本將覆蓋每個人的價值觀:

mysql_query("update settings set value=value + 1 where title like 'search_number'"); 
相關問題