我以爲我已經回答了這個問題,謝謝StackOverFlow,但我匆忙地回答了一個問題,結果並不是我問題的真正原因。頁面在Firefox上加載兩次?
我檢查我的Apache訪問日誌:
這是我上瀏覽谷歌Chrome瀏覽我的web應用程序。
127.0.0.1 - - [06/Jan/2010:22:17:35 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:17:36 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:17:38 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
這是我在IE7上瀏覽我的網絡應用程序。
127.0.0.1 - - [06/Jan/2010:22:21:49 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:21:50 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
這是我在Firefox上瀏覽我的網站應用程序。
127.0.0.1 - - [06/Jan/2010:22:18:08 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:09 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:11 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:18:12 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
這只是我點擊左右。但通知對於每個頁面請求Firefox似乎要加載頁面兩次,它影響我的PHP腳本,因爲他們正在執行兩次,並做兩個插入我的數據庫!
爲什麼?我正在使用Firefox 3.5.6。我猜這是一個Firefox問題,而不是PHP/Apache的問題?
我真的希望你所說的插入是嚴格的記錄。如果發出GET請求導致一些其他數據更改,那麼您在這裏有嚴重的設計問題。 – NotMe 2011-01-24 20:38:30
'如果發出GET請求會導致其他數據更改'這完全是虛假聲明。無論您是接受來自表單字段集中的一系列輸入參數,還是查詢get字符串集合,都沒有區別。 – 2011-01-27 14:39:22
我不會說沒有區別。對於一個post請求需要重新發布(大多數瀏覽器會提示用戶),而GET請求可以輕鬆地(無意)重新請求,複製URL並粘貼它將重新請求它。 另外,有人可以很容易地在他們的網站上放置一個鏈接,其中src指向您的網站,任何訪問他們網站的人都會發布到您的網站。如果您的安全性是基於cookie的,他們的Cookie仍會被髮送。 所以有很多理由不使用GET發佈要保留的數據或請求會改變數據。 – 2012-10-04 15:02:46