Problème avec actualisation d'un formulaire d'enregistrement
Résolu
modemo2018
Messages postés
254
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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 compte désactivé - 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 !!!