Problème avec actualisation d'un formulaire d'enregistrement
Résolu
modemo2018
Messages postés
226
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, j'ai un souci avec le formulaire d'enregistrement que j'ai conçu, en fait la requête d'insertion s'exécute bien, mais j'ai juste rémarqué une petite anomalie, j'ai remarqué lorsque j'insère une donnée, celle-ci bien que inséré dans la base de donnée, celle-ci reste bloqué quelque part, lorsque j'actualise la page, la requête précédemment inséré à la BD s'exécute une fois de plus, et du coup j'ai deux fois les mêmes données dans la BD``
voici mon code d'insertion :
Comment puis-je faire pour arrêter cela?
voici mon code d'insertion :
try { $sql = 'INSERT INTO agent(notemat, typenote,idmat,idagent, nbre, mois, an) VALUES(:notemat, :typenote, :idmat, :idagent, :nbre, :mois, :an)'; $datas = array(':notemat' => $notemat, ':typenote' => $typenote,':idmat' => $idmat, ':idagent' => $idagent , ':nbre' => $nbre ,':mois' => $mois , ':an' => $annee ); try { $req = $bdd->prepare ( $sql ); if ( $req->execute ( $datas ) ) { } else { echo "<br> Erreur lors de l'enregistrement... <br>"; print_r ( $datas ); exit; } } catch ( Exception $e ) { // en cas d'erreur : echo "<br> Erreur lors de l'enregistrement en BDD ! " . $e->getMessage (); print_r ( $datas ); exit; } } catch ( Exception $e ) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage (); print_r ( $datas ); exit; }
Comment puis-je faire pour arrêter cela?
A voir également:
- Problème avec actualisation d'un formulaire d'enregistrement
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Comment couper un enregistrement audio - Guide
1 réponse
Bonjour,
j'ai du relire plusieurs fois ta question avant de comprendre de quoi il s'agissait...
Donc,
Tu valides ton formulaire... ta requête insert se fait.
Ensuite tu refresh ta page (via F5 par exemple...) et là... la requête se fait encore...
normal... puisque lorsque tu refresh, ça rejoue la dernière "requete html" envoyée.. à savoir le submit de ton formulaire.
Plusieurs façons de faire..
Soit tu utilises les variables de session
- Tu génère un id aléatoire unique (un token) dans ton formulaire ( dans un input hidden ) => Chaque fois que tu affiches ton formulaire, il faut un id aléatoire différent !
- Tu stockes cet id dans une variable de session
- Au moment de traiter le "submit" de ton formulaire , tu compares la valeurs stockées en session avec celle emises par l'input hidden. Si identique, tu traites la requête... sinon.. ben tu ne la joue pas.
- Une fois ta requête faite, tu supprime la variable en session.
Autre solution... tu joues simplement avec les redirections
Une fois la requête sql traitée... tu fais une redirection vers ta page
j'ai du relire plusieurs fois ta question avant de comprendre de quoi il s'agissait...
Donc,
Tu valides ton formulaire... ta requête insert se fait.
Ensuite tu refresh ta page (via F5 par exemple...) et là... la requête se fait encore...
normal... puisque lorsque tu refresh, ça rejoue la dernière "requete html" envoyée.. à savoir le submit de ton formulaire.
Plusieurs façons de faire..
Soit tu utilises les variables de session
- Tu génère un id aléatoire unique (un token) dans ton formulaire ( dans un input hidden ) => Chaque fois que tu affiches ton formulaire, il faut un id aléatoire différent !
- Tu stockes cet id dans une variable de session
- Au moment de traiter le "submit" de ton formulaire , tu compares la valeurs stockées en session avec celle emises par l'input hidden. Si identique, tu traites la requête... sinon.. ben tu ne la joue pas.
- Une fois ta requête faite, tu supprime la variable en session.
Autre solution... tu joues simplement avec les redirections
Une fois la requête sql traitée... tu fais une redirection vers ta page
header("location: tapage.php");
Je déplace donc ta question dans le bon forum ( ENCORE... ??!! )
A l'avenir, merci de placer tes questions dans le BON FORUM en fonction du souci concerné !
Tout n'est pas SQL !!!