Partage
  • Partager sur Facebook
  • Partager sur Twitter

variable undefined

    15 octobre 2018 à 13:26:30

    Bonjour, je vous expose mon problème, ( merci de votre aide )

    Lorsque je rempli mon formulaire et que je le valide je reçois ce message d'erreur :

    Voici ma ligne 10 : 

      $message = verifyInput($_POST["message"]);

    ce qui permet de voir si le message est bien rentrer et sinon envoyer un message d'erreur, or le message d'erreur ne s'affiche pas

    Tous mes messages d'erreur ne s'affiche pas lorsque je laisse une case vide de mon formulaire 

    Voici mon formulaire en entier :

    <?php
    $firstname = $name = $email = $phone = $message = "";
    $firstnameError = $nameError = $emailError = $phoneError = $messageError = "";
    if ($_SERVER["REQUEST_METHOD"] == "POST")
     {
      $firstname = verifyInput($_POST["firstname"]);
      $name = verifyInput($_POST["name"]);
      $email = verifyInput($_POST["email"]);
      $phone = verifyInput($_POST["phone"]);
      $message = verifyInput($_POST["message"]);
    
    if(empty($firstname))
    {
      $firstnameError ="Je veux connaitre ton prénom !";
    }
    if(empty($name))
    {
      $nameError ="Je veux connaitre ton nom !";
    }
    
    
    if(empty($message))
    {
      $messageError ="Je veux connaitre ton message !";
    }
    if(!isEmail($email))
    {
    $emailError = "Ceci n'est pas un email !";
    }
    if(!isPhone($phone))
    {
      $phoneError = "Que des chiffres et des espaces!";
    }
    
    }
    
    function isPhone($var)
    {
      return preg_match("/^[0-9 ]*$/",$var);
    }
    
    function isEmail($var)
    {
      return filter_var($var, FILTER_VALIDATE_EMAIL);
    }
    
    function verifyInput($var)
    {
      $var = trim($var);
      $var =stripslashes($var);
      $var = htmlspecialchars($var);
    
      return $var;
    }
     ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Conctactez-moi !</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="with=device-width,initial-scale=1">
    <!---jquery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <!---bootsrap -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <!---police -->
    <link href="http://fonts.googleapis.com/css?family=Lato" rel="stylesheet" type="text/css">
    <!---mon css -->
    <link rel="stylesheet" href="css/style.css">
    </head>
    <body>
    <div class="container">
      <div class="divider"></div>
      <div class="heading">
        <h2> Contactez-moi </h2>
      </div>
        <div class="row">
          <div class=" col-lg-offset-1">
          <form id="contact-form" class="centered" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" role="form">
      <div class="row">
        <div class="col-md-6">
    <label for="firstname">Prénom <span class="blue">*</span></label>
    <input type="text" id="firstname" name="firstname" required class="form-control" placeholder="Votre prénom" value"<?php echo $firstname; ?>">
    <p class="comments"><?php echo $firstnameError;?></p>
        </div>
    
    
        <div class="col-md-6">
          <label for="name">Nom <span class="blue">*</span></label>
          <input type="text" id="name" name="name" required class="form-control" placeholder="Votre nom"value"<?php echo $name; ?>">
          <p class="comments"><?php echo $nameError;?></p>
        </div>
    
    
        <div class="col-md-6">
          <label for="email">Email <span class="blue">*</span></label>
          <input type="email" id="email" name="email" required class="form-control" placeholder="Votre email" value"<?php echo $email; ?>">
          <p class="comments"><?php echo $emailError;?></p>
        </div>
    
    
        <div class="col-md-6">
          <label for="phone">Téléphone </label>
          <input type="tel" id="phone" name="phone"  class="form-control" placeholder="Votre téléphone" value"<?php echo $phone; ?>">
          <p class="comments"><?php echo $phoneError;?></p>
        </div>
    
    
        <div class="col-md-12">
          <label for="message">Message <span class="blue">*</span></label>
          <textarea id="message" name"message" required class="form-control" placeholder="Votre Message" rows="4"value"<?php echo $message; ?>"></textarea>
          <p class="comments"><?php echo $messageError;?></p>
        </div>
    
    
    
        <div class="col-md-12">
          <p class="blue"><strong>* Ces informations sont requises </strong></p>
        </div>
    
    
        <div class="col-md-12">
          <input type="submit" class="button1" value="Envoyez">
        </div>
    </form>
    <p class="thank-you">Votre message a bien été envoyé.</p>
    
        </div>
    </div>
      </div>
    
    
        </div>
    
    <br>
    <div class="divider"></div>
    <h2> Formulaire de Mattéo </h2>
    
    </body>
    </html>



    • Partager sur Facebook
    • Partager sur Twitter
      15 octobre 2018 à 13:28:59

      Bonjour,

      regarde de plus prêt cette ligne.

      <textarea id="message" name"message" required class="form-control" placeholder="Votre Message" rows="4"value"<?php echo $message; ?>"></textarea>

      Il manque un "="

      • Partager sur Facebook
      • Partager sur Twitter
        15 octobre 2018 à 13:29:10

        @Matioso: bien vu ;)

        [] => par acheter des lunettes ^^

        -
        Edité par christouphe 15 octobre 2018 à 13:29:58

        • Partager sur Facebook
        • Partager sur Twitter
          15 octobre 2018 à 13:32:01

          Par contre ta fonction verifInput ne devra pas être utilisé quand tu fera une insertion en base. A utiliser que pour l'affichage (je préfère te le préciser avant).

          Et aussi avec php 7 tu as l'opérateur ?? (opérateur de fusion null)

          -
          Edité par quenti77 15 octobre 2018 à 13:33:50

          • Partager sur Facebook
          • Partager sur Twitter
            15 octobre 2018 à 13:36:26

            Super, merci beaucoup une erreur que je ne trouvais pas inattention , C'est normal que mes messages d'erreur ne s'affiche pas ?
            • Partager sur Facebook
            • Partager sur Twitter
              15 octobre 2018 à 13:39:11

              Salut !

              quenti77 a écrit:

              Par contre ta fonction verifInput ne devra pas être utilisé quand tu fera une insertion en base. A utiliser que pour l'affichage (je préfère te le préciser avant).

              Attention, c'est juste le fait d'utiliser htmlspecialchars() qui pose problème là, pour ce qui est de stripslashes() c'est à voir selon la version de PHP, mais pour trim(), je ne vois pas pourquoi on ne ferait pas ce traitement avant insertion (moins de données "inutiles" à enregistrer).

              • Partager sur Facebook
              • Partager sur Twitter
                15 octobre 2018 à 13:41:06

                j'ai donc mis 
                <form id="contact-form" class="centered" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" role="form">
                mais toujours pas de message d'erreur qui s'affiche
                • Partager sur Facebook
                • Partager sur Twitter
                  15 octobre 2018 à 16:11:11

                  Bonjour,

                  Les messages d'erreur s'afficheront après activation dans ton php.ini et redémarrage d'apache.
                  Regarde du coté de display_errors.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  variable undefined

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown