Comment eviter message avertissement

Comment eviter message avertissement - PHP - Programmation

Marsh Posté le 15-06-2017 à 17:49:07    


Bonjour
Je voudrais éviter un renvoi répétitif des données de mon formulaire (formulaire .html) dans une table. Les données sont traitées dans une page dénommée (validation. PHP) . Maintenant je vérifie d’abord au niveau de cette page si l’enregistrement envisagé via le formulaire n’existe pas déjà dans le formulaire si oui un message vous signale qu’il existe déjà dans la table et vous invite à effectuer un autre enregistrement jusque-là tout fonctionne nickel j’ai aucun problème.  Le seul soucis est ,une fois les données transférées dans la table , si je rafraîchis la page  validation.php   un message d’avertissement s’affiche
 « Pour actualiser cette page votre navigateur web doit de nouveau envoyer les informations que vous avez entrées … » ,  
si j’appuie sur le bouton PRECEDENT de mon navigateur et que je me retrouve sur la page de mon formulaire (formulaire.html) et que j’appuie ensuite sur le bouton SUIVANT de mon navigateur ,les données du formulaire ne sont pas de  nouveau enregistrées dans ma table comme je l’avais bien prévu dans mon code et le message vous signalant que cet enregistrement existe déjà dans la table s’affiche . Vous voyez ici mon code fonctionne comme je le souhaite mais le seul problème, est l’apparition du message d’avertissement si je rafraîchi la page validation.php  je veux le faire disparaitre.  
Pour y parvenir j’ai lu un cours sur comment éviter les renvois repetitifs de navigateur sur open classeroom
Ainsi j’ai créé un bout de code sur un page dénommée eviterméssageavertissement.php  que je dois inclure dans ma page validation.php mais j’ai des difficultés à savoir le bon emplacement de ce code  
Aidez moi ca me fatigue j’y suis depuis des jours mais ca ne marche pas.
Voici mon code
 
 
formulaire.html
 

Code :
  1. <html >
  2. <body>
  3. <form action='validation_unique.php'  method='POST'>
  4.     Prénom :
  5.     <input type="text" name="prenom"/><br/>
  6.     Adresse de messagerie :
  7.     <input type="text" name="email"/><br/>
  8.     Âge :
  9.     <input type="INT" name="age"/><br/>
  10.     <input type="submit" value="Envoyer"/>
  11. </form>
  12. </body>
  13. </html>


 
validation.php

Code :
  1. <body>
  2. <?php
  3. //Valider toutes les données du formulaire
  4. $options = array(
  5. //Enlever les balises.
  6.     'prenom' => FILTER_SANITIZE_STRING,
  7. //Valider l'adresse de messagerie.
  8.     'email' => FILTER_VALIDATE_EMAIL,
  9.     'age' => array(
  10.                                    'filter' => FILTER_VALIDATE_INT, //Valider l'entier.
  11.                                    'options' => array(
  12.                                                               'min_range' => 0 //Minimum 0.
  13.                                                                )
  14.                                   )
  15.                           );
  16.       
  17. $resultat = filter_input_array(INPUT_POST, $options);
  18. if($resultat != null)
  19.              
  20.    { //Si le formulaire a bien été posté.
  21.                      //Enregistrer des messages d'erreur perso.
  22.                          
  23.                              $messageErreur = array(
  24.                              'email' => 'L\'adresse de messagerie n\'est pas valide.',
  25.                              'age' => 'Veuillez entrer un nombre entier positif pour votre âge.'
  26.                              );
  27.                             $nbrErreurs = 0;
  28.                          
  29.         foreach($options as $cle => $valeur)
  30.       { //Parcourir tous les champs voulus.
  31.                                     if(empty($_POST[$cle]))
  32.                        { //Si le champ est vide.
  33.                                                   echo 'Veuillez remplir le champ ' . $cle . '.<br/>';
  34.                                                   $nbrErreurs++;
  35.                                              }
  36.                                      elseif($resultat[$cle] === false)
  37.                                              { //S'il n'est pas valide.
  38.                                               echo $messageErreur[$cle] . '<br/>';
  39.                                               $nbrErreurs++;
  40.                                               }
  41.                             }
  42.                                
  43.         // Si les données saisies dans le formulaire respectent les formes exigées alors...
  44.                                      if($nbrErreurs == 0)
  45.                     {
  46.             if ( isset( $_POST['prenom'] ))
  47.                                                   {
  48.    
  49.                                                            $rechpren = $_POST['prenom'];
  50.                                                            $rechadresse = $_POST['email'];
  51.                                                            $rechage = $_POST['age'];
  52.                                                                     // On verrifie d'abord l'eventuelle existence de l'enregistrement dans la table  
  53.                                                                
  54.                                                                      try
  55.                                                                           {
  56.                                                                               $bdd = new PDO('mysql:host=localhost;dbname=comptes','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  57.                                                                            }
  58.                                                                       catch(Exception $e)
  59.                                                                           {
  60.                                                                        die('Erreur : '.$e->getMessage());
  61.                                                                            }
  62.                            // On récupère d'abord l'engistrement liee a la fiche du client dans la table ''clients''
  63.                                                                      $req = $bdd->prepare('SELECT prenom,email,age FROM clients WHERE prenom= :prenom AND email=:email AND age =:age'); 
  64.                                                                $req-> execute(array(
  65.                                                                               'prenom'=> $rechpren ,
  66.                     'email'=> $rechadresse ,
  67.                     'age'=> $rechage,
  68.        
  69.                                                                               ));
  70.                            $count = $req->rowCount();
  71.                                                  //On affiche chaque entrée une à une
  72.                                                                      while ($donnees = $req->fetch())
  73.                                                                   if($count> 0)
  74.                                                          
  75.                                                                    // Si le client existe dans la table on affichera
  76.                                                                              {
  77.                                                                                       { echo "Cet enregistrement existe déjà dans la base de données<br> <br/>";
  78.                       echo $donnees['prenom'].'.......'.$donnees['email'].'................'.$donnees['age'].'<br><br/>';
  79.                                                                                          exit;
  80.                                                                                       }
  81.                                                           }
  82.                                                                      $req->closeCursor(); // Termine le traitement de la requête
  83.                                                          }
  84.            else
  85.             // L'enregistrement n'existe pas dans la table on l'effectue
  86.               try
  87.                                                                           {
  88.                                                                               $bdd = new PDO('mysql:host=localhost;dbname=comptes','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  89.                                                                            }
  90.                                                                       catch(Exception $e)
  91.                                                                           {
  92.                                                                        die('Erreur : '.$e->getMessage());
  93.                                                                            }
  94.                   
  95.                 {
  96.                                 $req = $bdd->prepare('INSERT INTO clients (prenom, email,age) VALUES(:prenom, :email,:age)');
  97.                                                                      $req->execute(array(
  98.                                                                      'prenom' =>$rechpren ,
  99.                                                                     'email' => $rechadresse,
  100.                              'age' =>$rechage
  101.                                                                      ));
  102.                                    
  103.                   {
  104.                                              echo 'Client enregistre';
  105.                                  }
  106.                  
  107.                                                                     $req->closeCursor();
  108.               }
  109.            }
  110.   }
  111. else
  112.              {
  113.                  echo 'effectuez un nouveau enregistrement .';
  114.              }
  115. ?>
  116. </body>


 
messageavertissement.php

Code :
  1. <?php
  2. session_start();
  3. if(!empty($_POST) OR !empty($_FILES))
  4. {
  5.     $_SESSION['sauvegarde'] = $_POST ;
  6.     $_SESSION['sauvegardeFILES'] = $_FILES ;
  7.    
  8.     $fichierActuel = $_SERVER['PHP_SELF'] ;
  9.     if(!empty($_SERVER['QUERY_STRING']))
  10.     {
  11.         $fichierActuel .= '?' . $_SERVER['QUERY_STRING'] ;
  12.     }
  13.    
  14.     header('Location: ' . $fichierActuel);
  15.     exit;
  16. }
  17. if(isset($_SESSION['sauvegarde']))
  18. {
  19.     $_POST = $_SESSION['sauvegarde'] ;
  20.     $_FILES = $_SESSION['sauvegardeFILES'] ;
  21.    
  22.     unset($_SESSION['sauvegarde'], $_SESSION['sauvegardeFILES']);
  23. }
  24. ?>

Reply

Marsh Posté le 15-06-2017 à 17:49:07   

Reply

Marsh Posté le 16-06-2017 à 11:29:00    

Au pire pourquoi tu ne mettrais pas ton formulaire dans le même script et dans action=" ", tu laisse vide? Au moins pour voir si le problème persiste
C'est normal que dans ton action on voit validation_unique.php et ton script s'appelle validation.php?
 :bounce:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed