2013-04-17 50 views
0

我使用下面的代碼來將點擊記錄到視圖表中,但是當我加載這個頁面時,MySQL查詢一次插入3行,所以1次命中意味着3次點擊。我想弄清楚,但不能得到任何運氣。mysql查詢插入3個重複記錄

$width = 16; 
    $height = 16; 

    $id = 30 

    $ip = $_SERVER['REMOTE_ADDR']; 
    $user_agent = $_SERVER['HTTP_USER_AGENT']; 


    //count views 

    global $db; 


    $sql = 'INSERT INTO '.DB_PREFIX.'views (invoice_id, ip, user_agent) 
               VALUES ("' . $id . '", 
               "' . ip2long($ip) . '", 
               "' . $user_agent . '")'; 

$db->query($sql); 

//display image 
header("Content-type: image/png"); 
$img = imagecreate($width, $height); 
$background_color = imagecolorallocate($img, 238, 238, 238); 
imagepng($img); 
imagedestroy($img); 

如果我用一個簡單的替換echo "Successfully done!"顯示圖像碼,問題是固定的,它只是插入一行。

MySQL的行

id  invoice_id ip   user_agent dnt 
35  22   2058457116  Mozilla/5.0 2013-04-17 11:55:12 
34  22   2058457116  Mozilla/5.0 2013-04-17 11:55:12 
33  22   2058457116  Mozilla/5.0 2013-04-17 11:55:11 
+1

你確定只調用一次這個腳本嗎?也許輸出''成功完成!'''把某個地方打破了,所以你只能稱它一次。 – Halcyon

+0

@FritsvanCampen只有一次,我通過在瀏覽器中調用其直接url進行調試。 – seoppc

+0

需要更多的數據來弄清楚發生了什麼事情:1.可以粘貼每次創建的三條記錄2.確切地說哪些圖像代碼行將被替換,並且您是否成功完成回顯? – raidenace

回答

0

沒有辦法的腳本可以插入三行。

所以唯一的可能性是腳本運行三次。

我建議您檢查網站服務器日誌是否訪問該URL。

0

您是使用模板引擎還是某種CMS?例如,我已經嘗試過Drupal,並且由於系統的鉤子功能,文件可能會被多次調用,與模板引擎相同。這可能是問題所在。另外,回顯某些內容可能會阻止其他腳本不能運行,因爲與'headers already sent'情況有關的錯誤。這就是爲什麼即使你最後做了die(),它仍然不能工作。

1

請問您可以告訴您用於測試的操作系統和瀏覽器。 我曾嘗試在IOS設備中使用safari時曾遇到類似問題。 我的代碼是用於下載音頻。對於所有的操作系​​統它工作得很好。但是對於iOS設備下載代碼的safari來說,它已經被執行了多次。 請在其他瀏覽器上檢查並讓我們知道結果。