Explications:
Alors oui, le code PHP est executer coté server, mais l'evenement déclencheur est un submit sur le formulaire en question. Si la page se recharge automatiquement et qu'elle n'est pas 'protégé', le simple fait de presser F5 (rafraichir) va recharger la page et donc inserer une 2ème fois toutes les info en Base.
Situation concernant IE et FireFox: tout le monde sait que IE et Firefox n'interprète pas le code HTML de la même manière...
D'ou la situation suivante: ce qui fonctionne sous IE ne fonctionera pas de la même manière sous FireFox !
Simple: Si une erreur c'est glisser dans le HTML, il se peut que Firefox ne la detecte pas alors que IE le fasse (ou inversement ...). C'est EXACTEMENT ce qui qe passe!!
En fait, IE va se heuter a une erreur HTML qu'il n'arrive pas a interpreter correctment et recharger la page automatiquement et instantanément sans rien demander a personne .... le PHP est donc recharger (avec la page) et la requête executé une seconde fois d'ou un double INSERT.
Cette erreur n'a rien a voir avec PHP, ni même avec MySQL. C'est une simple erreur d'interpretation du code HTML sous IE!
Un exemple concret:
http://bugs.php.net/bug.php?id=10599
Partager