Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2007, 15h22   #1
Membre chevronné
 
Inscription : janvier 2006
Messages : 918
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 918
Points : 735
Points : 735
Par défaut [Conception] Doublons aléatoires lors du passage de formulaire (code inclus)

Bonjour

J'ai un problème épineux que je n'arrive pas à résoudre depuis plusieurs semaines.

J'ai une application dont le script a la structure suivante :

1. déclaration des variables
2. contrôleur commandé par $_GET['action'] = modif (avec un insert into dans une BDD mysql), qui se termine par un exit(header(mapage.php)) sans action
3. formulaire de type action="mapage.php?action=modif"

De manière qui m'a l'air complètement aléatoire, le contrôleur est parfois parcouru 2 fois, avec affichage en double des messages d'erreur et insertion en double dans la base.

Quelqu'un a-t-il déjà rencontré ce problème ou a des idées pour le résoudre ?

Pour info, j'utilise php 5.2 comme module d'apache 2.2 sur windows 2003.

Merci beaucoup.


EDIT :

J'ajoute ici le code du formulaire incriminé, simplifié au maximum.
J'aimerais que quelqu'un le teste, pour voir si tout le monde a les mêmes erreurs que moi, ça me permettrait de voir où se situe le problème.

Pour le tester, il suffit de cliquer sur le bouton en laissant le champ vide : il y a un message d'erreur qui s'affiche en rouge. Ce message devrait s'afficher une fois, mais parfois c'est 2 et très rarement 3.

Il suffit de copier les 2 fichiers joints.

Vous pouvez bien sur réutiliser le code, celui des fonctions peut être utile.

Merci d'avance
Fichiers attachés
Type de fichier : php demande_tiers_formulairebis.php (608 octets, 2 affichages)
Type de fichier : php demande_tiersbis.php (2,4 Ko, 1 affichages)
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2007, 18h27   #2
Membre chevronné
 
Inscription : janvier 2006
Messages : 918
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 918
Points : 735
Points : 735
Pour info : j'ai essayé de débugger mon code avec NuSphere EDI.
L'erreur n'est pas reproductible. Je ne sais vraiment pas quoi faire.
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 13h14   #3
Membre éclairé
 
Avatar de makmaoui
 
Développeur Web
Inscription : mai 2007
Messages : 282
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2007
Messages : 282
Points : 361
Points : 361
Salut,
j'ai essayé ton code et le problème se pose avec IE et pas Firefox, il semble que c'est ton header qui pose problème. J'ai du mal à comprendre le code mais si tu mets en commentaire ton header le problème ne se pose plus. :
Code :
//exit(header("Location: ".$_SERVER['SCRIPT_NAME']."?mode=$mode"));
Voilà j'espére t'avoir aider, bon courage
makmaoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 11h00   #4
Membre chevronné
 
Inscription : janvier 2006
Messages : 918
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 918
Points : 735
Points : 735
Merci pour le test. Je peux mettre le code sans header, mais si l'utilisateur actualise sa page, ça reposte les informations, et j'aimerais mieux éviter cette situation dans la mesure du possible.
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h30.


 
 
 
 
Partenaires

Hébergement Web