Formulaire qui s'envoie avec dernière valeurs après F5

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
Malib

Malib Le 23 avril 2016 à 19:51 (Édité le 25 janvier 2019 à 17:50)

Bonsoir, voilà j'ai mon formulaire qui se rempli, si je valide il ajoute des données dans la BDD.

tout fonctionne, mais si je fait F5 après la validation il renvoi une deuxieme fois mon formulaire même vide... il garde les anciennes valeurs
<?php
         if(isset($_SESSION['id']) AND !empty($_SESSION['id'])) /* permet de verifier si le membre est connecté ou non */
         
         {
               
               $idpopulation = intval($_SESSION['id']);
               $reqpop = $bdd->prepare("SELECT * FROM population WHERE id = ? ");
               $reqpop->execute(array($idpopulation));
               $population = $reqpop->fetch();
               
               
               /* Definie les variable pour eviter de les écrires en long */
               $popucivil=$population['civil'];
               $popuchercheur=$population['chercheur'];
               $popusoldat=$population['soldat'];
               $popuglobal=$popucivil+$popusoldat+$popuchercheur;
            
            
               
               
               
                     if(isset($_POST['valider_changement']) AND !empty($_POST['soldat']) AND !empty($_POST['chercheur']));
                        {
                              if(isset ($_POST['soldat']) AND !empty($_POST['soldat']))
                                       {
                                          
                                          $popucivil=$popucivil-($_POST['soldat']);
                                          $popusoldat=($_POST['soldat'])+$popusoldat;
                                          
                                          $reqsoldatup=$bdd->prepare("UPDATE population SET soldat = ?+$popusoldat, civil= ?+1 WHERE id = ?");
                                          $reqsoldatup->execute(array($_POST['soldat'],$popucivil,($_SESSION['id'])));
                                          
                                          /* Permet de rediriger la page vers l'accueil du site*/
                                                                  $delai=2; 
                                                                  
                                                                  header("Refresh: $delai");
                                          
                                       }
                                       
                              if(isset ($_POST['chercheur']) AND !empty($_POST['chercheur']))         
                                          
                                          {   
                                          
                                          $popucivil=$popucivil-($_POST['chercheur']);
                                          $popuchercheur=($_POST['chercheur'])+$popuchercheur;
                                          
                                          $reqchercheurup=$bdd->prepare("UPDATE population SET chercheur = ?+$popuchercheur, civil= ?+1 WHERE id = ?");
                                          $reqchercheurup->execute(array($_POST['chercheur'],$popucivil,($_SESSION['id'])));
                                          
                                          /* Permet de rediriger la page vers l'accueil du site*/
                                                                  $delai=2; 
                                                                  
                                                                  header("Refresh: $delai");
                                          
                                          }
                        }
                        
                        
         
         
?>
je ne trouve pas comment faire...
Aendawan

Aendawan Le 23 avril 2016 à 22:02

Une fois ton script exécuté, lancé et tout enregistré dans ta base de donnée. Redirige ton utilisateur vers une page de "succès".

En PHP, il suffis de faire <?php header('location: mapage.php'); ?>

Ainsi, sur la nouvelle page, si l'utilisateur fait F5, il ne re-envoyer le formulaire.

Cordialement, Aendawan.
Malib

Malib Le 24 avril 2016 à 00:47

je fais la page qui s'affiche genre 1 seconde et qui me ramène à nouveau sur celle la
Malib

Malib Le 24 avril 2016 à 10:08

merci cela fonctionne 😉
Aendawan

Aendawan Le 24 avril 2016 à 11:30

De rien 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte