Aller au contenu

INSERT exécuté 2 fois


Sujets conseillés

Posté

Bonjour à tous,

Je butte depuis 24h sur un problème d'INSERT qui se fait parfois deux fois. Après la saisie d'un formulaire de base, j'appelle une page dans laquelle je commence par faire un INSERT en base et oh surprise, l'élément est aléatoirement ajouté une ou deux fois et je n'arrive pas à comprendre pourquoi parfois l'ajout se fait deux fois.

J'ai trouvé ce post:

http://www.developpez.net/forums/archive/i...p/t-143523.html

Ou on parle du même problème et j'avoue que j'ai pas franchement compris l'explication. Serait-ce plus clair pour l'un d'entre vous ?

Posté

Cela doit être dû à la structure de ton code...

Peux-tu le faire afficher ici ?

Posté

Côté formulaire, le code est le suivant:

<form method="get" action="http://www.mondomaine.com/page.php" onsubmit="if (this.elements['q'].value != '') return true; else return false;" name="formSearch">
<input name="q" type="text" id="q" size="50" >
<input name="i" type="hidden" value="1">
<input type="submit" value="GO">
</form>

Côté serveur au début de page.php, j'ai mon INSERT:

INSERT INTO myTable (col1, col2) VALUES ('val1', 'val2')

En lisant le lien mentionné, on semblerait que dans certains cas la page soit déclenchée deux fois. L'explication est un peu fumeuse .

Posté

A mon avis, tu devrais faire le test de la variable $q dans la page page.php, et éventuellement retourner à la page précédente si elle n'est pas remplie.

Parce que là, qu'elle soit remplie ou non, tu appelles tout de même page.php, sans parler de ceux qui n'ont pas JavaScript activé.

Dan

Posté

Je suis encore sur mon problème de doublon et c'est assez incroyable, on dirait qu'il y a un phénomène d'echo. Quand je fais mon INSERT je stocke la date et l'heure et le deuxième est 7 à 8 minutes après ! Je deviens fou :wacko:

Posté

Salut !

Ton navigateur reste ouverte sur la page pendant ce temps-là ? C'est pas un rafraîchissement de la page qui provoque ça ?

Je vois pas ce que ça pourrait être d'autre... Si c'est 7 minutes après c'est louche.

Posté (modifié)

Merci à tous pour vos pistes, mais je ne comprends toujours pas ce qui se passe. La solution de Dan avec une redirection 301 marche et m'évite le doublon en bonus, j'en profite pour faire du rewriting :smartass:

Modifié par adn

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...