IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

réinitialiser les variables du formulaire en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 69
    Par défaut réinitialiser les variables du formulaire en PHP
    Bonsoir tout le monde.

    Cela fais un bon moment que je me prend la tête à réinitialiser des variables dans mon livre d'or et je ne trouve pas le moyen.

    Pour être clair, si je clique sur valider tout se passe bien, puis je valide une seconde fois le nouveau message s'affiche. Par contre si je rempli les champs et puis je clique sur valider ensuite j'actualise la page, les variables $_POST sont toujours renseignées avec les mêmes valeurs entrées. Donc si j'actualise dix fois de suite j'aurai dix fois le même enregistrement. Comment faire pour vider les variables ou les réinitialiser ? Comment réactualiser automatiquement la page une fois que le visiteur clique sur valider ? J'ai cherché sur le net et dans le forum je ne trouve pas ce qui me va. Merci pour l'aide que vous pouvez m'apporter.

    Ci-après mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
        <form method="post" action="guestbook.php">
     
          <div id="contenupoeme">
            Si vous voulez laisser un commentaire...</br></br>
     
                Pseudo :<input name="pseudo" /><br /><br/> e-mail : <input name= "mail" /> <br/><br/> Message :<br />
                <textarea name="message" rows="8" cols="35"></textarea><br />
                <input type="submit" value="Envoyer" />
     
          </div>   
        </form>
     
     
        <?php
     
          $ip = $_SERVER['REMOTE_ADDR'];
     
          try
           {
           $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
           $bdd = new PDO('mysql:host=localhost;dbname=db_livreor', 'root', '', $pdo_options);
           }
     
          catch (Exception $e)
           {
           die('Erreur : ' . $e->getMessage()); 
           }
     
          $reponse = $bdd->query('SELECT  *FROM t_livreor');
          // on affiche les messages des visiteurs
          while ($donnees = $reponse->fetch())  
            {
            echo $donnees['pseudo'] . '<br/>';
            echo $donnees['ip'] . '<br/>';
            echo $donnees['message']  . '<br /><br />';
            }
     
          //Insertion d'un nouveau message  
          if(isset($_POST['pseudo']) && isset($_POST['mail']) && isset($_POST['message'])) 
     
            if (empty($_POST['pseudo']) || empty($_POST['mail']) || empty($_POST['message']))
              {
              echo 'Veuillez renseigner tous les champs';
              }
            else    
              {
              $req = $bdd->prepare('INSERT INTO t_livreor(ip,pseudo, mail, message) VALUES(?, ?, ?, ?)');
              $req->execute(array($ip,$_POST['pseudo'],$_POST['mail'],$_POST['message']));
              echo 'Votre message a bien été envoyé. Il sera publié après modération.';
              }
     
     
            if(isset($_POST['pseudo']))
              {
              print_r($_POST['pseudo']);
              }
              $reponse->closeCursor(); // Termine le traitement de la requête
     
        ?>
    J'ai fais un print_r() pour voir ce que contenait le $_POST à la fin du module.

  2. #2
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    Je ne suis pas certaine de la réponse, mais je me lance quand même.

    Tu ne peux pas vider les variables en $_POST, quoi que tu fasses, elles ont étaient remplies donc, resterons présente à chaque actualisation de cette page, puisque cette page contient les informations envoyées.

    Tu es donc obligé de rediriger le client vers une autre page.

    Donc, après ton insertion je te conseille de faire une redirection qui amènera sur la page qui contiendra ton message "succès".

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: TA_PAGE_CONTENANT_TON_MESSAGE.php");

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 69
    Par défaut
    Merci Atomya rise d'avoir pris le temps de me répondre.

    En effet je confirme qu tu as raison. Tu peut tout essayer mais les variables $_POSTE sont implacables. On ne peut les vider que par la redirection sur une autre page, et c'est la solution que j'ai trouvé. Maintenant ça fonctionne à merveille.

    Je remet le code juste pour le fun avec redirection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
          <div id="conteneurpage">
            Si vous souhaitez laisser un commentaire...</br></br>
     
                Pseudo :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="pseudo" /><br /><br/> e-mail :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input name= "mail" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Votre e-mail ne sera pas visible <br/><br/> Message :<br /><br />
                <textarea name="message" rows="8" cols="65"></textarea><br /><br />
                <input type="submit" value="Envoyer" />
     
          </div>   
        </form>
     
        <fontcolwhite>
     
        <?php
     
          $ip = $_SERVER['REMOTE_ADDR'];
     
          try
           {
           $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
           $bdd = new PDO('mysql:host=localhost;dbname=db_livreor', 'root', '', $pdo_options);
           }
     
          catch (Exception $e)
           {
           die('Erreur : ' . $e->getMessage()); 
           }
     
          //Insertion d'un nouveau message  
          if(isset($_POST['pseudo']) && isset($_POST['mail']) && isset($_POST['message'])) 
     
            if (empty($_POST['pseudo']) || empty($_POST['mail']) || empty($_POST['message']))
              {
              echo 'Veuillez renseigner tous les champs';
              }
            else    
              {
              $req = $bdd->prepare('INSERT INTO t_livreor(ip,pseudo, mail, message) VALUES(?, ?, ?, ?)');
              $req->execute(array($ip,$_POST['pseudo'],$_POST['mail'],$_POST['message']));
              //Redirection sur la page du message ok
              header('Location: /messageok.php'); 
              }
     
              //$reponse->closeCursor(); // Termine le traitement de la requête
     
        ?>
    Merci encore.

    Je te souhaite une très bonne anné 2012

  4. #4
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    y'a pas de quoi

    Je te souhaite également tout mes meilleurs voeux pour cette nouvelle année !

    Bon courage !

    Bien cordialement,
    Atomya Rise

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Question sur les Variables dans une requête php-Mysql
    Par rvtoulon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/02/2012, 12h06
  2. Réponses: 3
    Dernier message: 22/08/2011, 09h43
  3. [Smarty] Réafficher les variables de formulaire
    Par keiser1080 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/02/2007, 15h41
  4. Réinitialiser les variables
    Par keibenoit dans le forum Access
    Réponses: 2
    Dernier message: 12/06/2006, 14h00
  5. Réponses: 7
    Dernier message: 15/05/2006, 13h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo