我以为我已经回答了这个问题,谢谢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