Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
774 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comment eviter message avertissement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment eviter message avertissement

n°2302073
abdoulayec​oumba
Posté le 15-06-2017 à 17:49:07  profilanswer
 


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. ?>

mood
Publicité
Posté le 15-06-2017 à 17:49:07  profilanswer
 

n°2302095
Dolb66
Posté le 16-06-2017 à 11:29:00  profilanswer
 

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:  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comment eviter message avertissement

 

Sujets relatifs
Désactiver un avertissementMessage box avec 6 boutons?
tkinter faire varié un messageEviter les quotes quand j'insère du texte dans un tableau
Supprimer un message avec OPTION "DEL" pour messagerie interne[PHP] Besoin d'aide pour résoudre un message d'erreur
Eviter le "document expiré"message aux développeurs
Eviter toutes cellules pattern (rayures diagonales fines)[MFC] [RESOLU] Affichage message avant fermeture d une fenetre
Plus de sujets relatifs à : Comment eviter message avertissement



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR