2012-05-16 42 views
0

我在我的網站上有一個奇怪的問題。每當鏈接被點擊時,該文件將被執行兩次。我注意到這一點的唯一原因是因爲當我提交關鍵字的搜索請求時,我將搜索記錄在我們的MySQL數據庫中。數據庫總是保存兩條記錄(有一個時間戳,有時在同一秒添加記錄,但通常只相隔一秒)。我知道我是網站上唯一的一個,並且查詢沒有被循環調用。所以我做了一個fopen($ file,'a')來查看將要添加多少行代碼,並且大部分時間添加了兩行代碼。如果我連續兩次運行相同的搜索,我能得到一個記錄的唯一方法就是添加。PHP在點擊鏈接時執行兩次文件

所以我唯一能想到的就是我們的網站上有goodle廣告。我可以想象發生的唯一事情是,當我點擊鏈接時,與廣告綁定的JavaScript也遵循相同的鏈接。

其他精彩的想法?

+0

請告訴我們該鏈接的頁面的代碼,然後爲PHP。 –

+0

你能告訴我們按鈕上的代碼嗎? –

+0

也許有東西被包含了兩次? – bfavaretto

回答

0

我應該害怕嗎?

當我寫這篇文章時(我看到@cillosis提示),我評論了谷歌廣告的代碼。

我不再有問題了。儘管這完全是谷歌。每次運行搜索時,這都在我的apache訪問日誌中。

66.249.73.87 - - [16/May/2012:12:38:45 -0500] "GET /search.php?page_num=1&keywords=stylist&city=&state=AL&cat= HTTP/1.1" 200 14185 "-" "Mediapartners-Google" 

我很害怕.....

5

我見過這種症狀時,有一項資產(圖像,JS,CSS)沒有實際的鏈接,如:

<img src="" /> 
在這種情況下,瀏覽器試圖獲取相同的URL

,但不同的Accept標題。記錄下來,這將有助於看看是否是這種情況。

1

當處理的形式,檢查,看看他們實際點擊提交按鈕這樣的:

if (isset($_POST['submit']) && $_POST['submit'] == 'submit') { 
    // Process form 
} else { 
    // Just display it 
} 

這會防止你處理它的兩倍。你也應該在使用303重定向的表單發佈之後重定向。