Je pensais avoir répondu à cette question auparavant grâce à StackOverFlow, mais j'ai rapidement pris une réponse et il s'avère que ce n'est pas la cause réelle de mon problème.Pages charger deux fois sur Firefox?
J'ai vérifié mon Apache Access Log:
Cela me navigue mon application web sur le navigateur Google Chrome.
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
Cela me navigue mon application web sur 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
Ceci est ma navigation sur mon application web sur 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
Ceci est juste moi en cliquant autour. Mais notez que pour chaque requête de page firefox semble charger la page deux fois et qu'elle affecte mes scripts PHP car ils s'exécutent deux fois et font deux insertions dans ma base de données!
Pourquoi est-ce le cas? J'utilise Firefox 3.5.6. Je devine que c'est un problème de Firefox plutôt qu'un PHP/Apache?
J'espère vraiment que les insertions dont vous parlez sont strictement l'exploitation forestière. Si l'émission de requêtes GET provoque d'autres modifications de données, vous rencontrez de sérieux problèmes de conception. – NotMe
'Si l'émission de requêtes GET provoque d'autres modifications de données' c'est une instruction totalement fausse. Il n'y a aucune différence si vous acceptez une série de paramètres d'entrée à partir d'un ensemble de champs de formulaire dans la publication, ou une collection de chaînes de requête sur un get. –
Je ne dirais pas qu'il n'y a pas de différence. Pour l'un, la demande de publication nécessiterait un re-post (que la plupart des navigateurs proposeraient à l'utilisateur), tandis qu'une requête GET peut être demandée facilement (involontairement) et la copie de l'URL et son collage la reviendraient. En outre, quelqu'un pourrait facilement mettre un lien dans un img sur leur site avec le pointage src sur votre site, et tous ceux qui visitent leur site afficherait sur votre site. Si votre sécurité est basée sur des cookies, leur cookie sera toujours envoyé. Il existe donc de nombreuses raisons de ne pas utiliser GET pour la publication de données persistantes ou des demandes qui modifieront les données. –