begin process at 2010 03 20 17:07:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

rafraîchir


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

rafraîchir

jeudi 30 août 2007 à 14:34:15 | rafraîchir

glachant

Bonjour,
voilà j'ai un problème.
 J'ai un formulaire que je valide pour insertion dans MYSQL, jusque là tout va bien.
quand je fais un refresh de la page juste après avoir soumis la requete, le script se reexecute une deuxième fois !
du coup, j'ai des tentatives de INSERT avec les mêmes clés d'enregistrement !!! Le résultat est assez moche !
est-ce normal ? si oui, comment l'éviter ?
pour info, mon script x.php qui soumet le formulaire est lui même rappelé pour pour executer la soumission.
merci de vorte aide.
jeudi 30 août 2007 à 15:44:13 | Re : rafraîchir

raven44

Bonjour à toi, Pour résoudre ton problème, tu peux mettre un champs caché du style : Puis ton PHP tu l'execute seulement si ta variable "form_exec == yes", un peu comme ça : if ($form_exec=="yes") { Mon PHP avec mon insert. } else { Mon HTML avec mon formulaire et mon champs hidden en dessous de mon form. }
jeudi 30 août 2007 à 20:46:59 | Re : rafraîchir

audayls

Salut,
@raven44 : Nan si tu fais un refresh le formulaire entier (avec le champs caché) sera également réenvoyer.
Tu as 2 solutions dans ce cas :
1 - Soit tu fais une recherche dans ta base pour vérifier que l'INSERT a déja été executée.
2 - Soit juste après la requete tu enregistres une variable une variable "$_SESSION". Celà donnera un script du genre :
<?php
session_start();
if (!isset($_SESSION['form_exec'])) {
   // requete INSERT
   $_SESSION['form_exec'] = TRUE;
}
?>


For every choice, a consequence (Fable)

vendredi 31 août 2007 à 10:09:59 | Re : rafraîchir

glachant

Merci pour ces réponses ...MAIS :
le cas 1 - je l'oublie pour la raison suivante : je ne peux pas tester la clé d'enreg puisque auto incrémentée.
il reste donc la 2- : Que se passe-t-il si l'utilisateur veut créer 2 fois d'affilée.
La première ça marchera, ça pas de pb; par contre, la 2ème $_SESSION['form_exec'] = TRUE  empêchera au script de créer un deuxième enregistrement !
le problème c'est que je ne peux pas me baser sur la clé de l'enreg créé puisqu'elle est auto incrémentée et que ce n'est pas l'utilisateur qui la choisit.
vraiment je bloque !
vendredi 31 août 2007 à 11:42:00 | Re : rafraîchir

Evangun

Hello,

soit tu fais un select pour voir si un enregistrement identique (je parle de tout sauf la clé auto-incrémentée bien sûr) existe, ou alors à chaque fois que tu génères une page de formulaire, tu mets un numéro unique dedans, et c'est lui que tu mets en session quand la page est remplie :

$_SESSION['form_exec_2684685'] = true;

là, la page de formulaire qui a reçu le numéro
2684685 ne pourra plus valider le formulaire, mais une autre page (différente) avec le numéro 121231546 pourra.
vendredi 31 août 2007 à 19:18:16 | Re : rafraîchir

audayls

Réponse acceptée !
Ola je comprends pas là -_-"
Pour le cas 1 tu peux très bien lancée une recherche sans la clé d'enregistrement mais avec tous les champs que l'utilisateur t'a soumis.
Pour le cas 2 il suffit de supprimer la variable "$_SESSION['form_exec']" avec "unset($_SESSION['form_exec'])" sur la page du formulaire. De cette manière le verrou est posé lorsque tu postes le formulaire et il est enlevé lorsque tu affiches le formulaire.

For every choice, a consequence (Fable)
lundi 3 septembre 2007 à 12:46:56 | Re : rafraîchir

glachant

super, ça marche, je me suis fais c... mais ça marche !
merci



Cette discussion est classée dans : script, formulaire, rafraîchir


Répondre à ce message

Sujets en rapport avec ce message

"bluffer" un script cgi [ par koala01 ] Bonjour,je cherche désepérément le moyen de faire une double utilisation d'un formulaire:Il faudrait qu'une page PHP vérifie le formulaire (ca, c'est Formulaire d'envoi de mail en HTML [ par slhuilli ] Bonjour,Je suis a la recherche d'un script (PHP si possible) pour pouvoir écrire des mails au format HTML (gestion des gras, souligné et italique ains rafraîchir un formulaire [ par eax ] salut!j'ai un petit pb avec un formulaire: je souhaite modifier le contenu d'une liste select avec un script php lorsque le mec choisit un élément dan Aide sur exec + formulaire [ par pericles ] Bonjour le mondej'ai un script sh a executer via php et je n'y arrive pas :/donc en gros j'ai creer un formulaire qui envoi des info au script sh et q A l'aide probleme au niveau d'un minichat [ par evilimp ] bon voila j'ai debuter le php il ni as pa lontemp (environ 2 semaines) et j'ai vitecompris comment sa marcher j'ai créé un mini chat mavec mysql etc.. problème avec script de censure [ par pyranhaz ] Le script ci-dessous doit vérifier que le champs de recherche nommé "query" dans le formulaire ne comprend aucun des mots contenu dans $Forbidden[1] = Probleme de communication entre formulaire et script [ par djyb2003 ] Bonjour ! Voila mon probleme j'ai utilisé un script php dans mon formulaire pour envoyer un mail rempli des champs du formulaire! mai le serveur me so Lien entre formulaire et script php [ par starskyb ] Bonjour,Je developpe une interface php qui me permet de faire des requete precise sur une base sql. Cette interface comprend un formulaire qui a pour appeler un formulaire qui est dans un meme script PHP [ par fredericmaill ] S@lut, je voudrais savoir s'il est possible et dans ce cas quauel methode utilisé, pour faire  utiliser un formulaire POST, qui est sur le meme script AIDE !!!! Svp besoin d'un script URGENT !!!! [ par zeppo4268 ] Bonjours, Je voudrai grace a un formulaire afficher sur une page en php un texte qui dura 20mnEt que si quelqu'un rempli le formulaire avan les 20mn i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales