Formulaires

Bonjour,
J'ai de gros problèmes avec les formulaires php, pour le créer, tout va bien.
Le problème, c'est que je n'arrive pas à récupérer et retransmettre les données introduites par l'utilisateur en utilisant $_POST.

Pourriez-vous m'aider?
merci

3 réponses

  1. Salut salut,

    Peux tu poster ton formulaire ça nous aidera ;)
    1. bonjour,

      <form method="post" action="mail.php">

      <h2>CONTACT</h2>

      <p>
      Votre Email <br />
      <input type="text" name="votremail" />

      <!-- Valeur par défaut de l'objet du mail -->
      <input type="hidden" name="objet" value="Vous avez un nouveau message" />
      </p>

      <p>
      Votre message <br />
      <textarea cols="50" rows="10" name="message"></textarea>
      </p>

      <p>
      <input type="submit" value="Envoyer" />
      </p>

      </form>
      <!-- On ferme la balise form, notre formulaire est fini -->

      <head>
      <?php
      // La variable $verif va nous permettre d'analyser si la sémantique de l'e-mail est bonne
      $verif="!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!";

      // On assigne et protège nos variables
      $votremail=$_POST["votremail"];
      $from=htmlspecialchars("From: ".$votremail."\r\n");
      $message=stripslashes(htmlspecialchars($_POST["message"]));

      // On met ici notre e-mail
      $destinataire="destinataire@hotmail.fr<script type="text/javascript">
      /* <![CDATA[ */
      (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
      /* ]]> */
      </script>";

      /* On place le sujet du message qui, ici, sera toujours le même
      puisque dans la partie Html, on l'a mis en caché grâce au type="hidden"<couleur nom="rouge"> <img src="../../bundles/tinymce/vendor/tiny_mce/plugins/emotions/img/clin.png" title=";)" alt=";)"> </couleur> avec comme valeur "Vous avez un nouveau message" */
      $objet=$_POST['objet'];

      // C'est bon : on est ok, vérifions si l'e-mail est valide, grâce à notre sympathique REGEX
      if(!preg_match($verif,$votremail))
      {
      echo "Votre e-mail n'est pas valide";
      }

      // On vérifie s'il y a un message
      elseif (trim($message)=="")
      {
      echo "Y'en a marre des messages vides !";
      }

      // Si tout est ok, on envoie l'e-mail
      else
      {
      mail($destinataire,$objet,$message,$from);
      echo "Message envoyé au webmaster";
      }

      ?>
      </head><br>

      Le Site du Zero
      1. <html>
        <meta charset="utf-8"/>
        <h1>PHP avance-serie 1</h1><br/>
        <body>
        <form method="POST" action="cible.php">
        <p>
        Quel est votre prenom?
        <input type="text" name="prenom" value=" "/><br/>
        Quel est votre nom?
        <input type="text" name="nom" value=" "/><br/>
        Veuillez entrer ici un mot de passe
        <input type="password" name="mot de passe"/><br/>
        Veuillez confirmer votre mot de passe
        <input type="password" name="confirmez votre mot de passe"/><br/>
        Etes-vous un homme ou une femme?
        homme
        <input type="radio" name="homme" value="oui" id="oui1" checked="checked"/><label for="oui1">Oui</label>
        <input type="radio" name="homme" value="non" id="non1" /><label for="non1">Non</label><br/>
        femme
        <input type="radio" name="femme" value="oui" id="oui2" /><label for="oui2">Oui</label>
        <input type="radio" name="femme" value="non" id="non2"/><label for="non2">Non</label><br/>
        Quelle est votre activite favorite?
        <select name="Activite favorite"><br/>
        <option value=" ">----Votre choix-----</option><br/>
        <option value="choix1">Sorties culturelles</option>
        <option value="choix2">Informatique</option>
        <option value="choix3">Voyages</option>
        <option value="choix4">Politique</option>
        </select><br/>
        <h2>Voulez-vous recevoir notre newsletter?</h2><br>
        <input type="checkbox" name="newsletter" value="oui" id="oui" checked="checked"/><label for="oui">Oui</label>
        <input type="checkbox" name="newsletter" value="non" id="non"/><label for="non">Non</label><br/>
        <h2>Avez-vous des commentaires?</h2><br/>
        <textarea name="commentaires" rows="10" cols="50">
        Votre texte ici
        </textarea><br/>
        <input type="submit" value="envoyer"/>
        <input type="reset" value="annuler"/><br/>
        </p>
        </form>

        Voilà le formulaire, qui est bon, j'ai vérifié.

        Et voilà ce qui cloche ;

        <?php
        echo "Merci d'avoir rempli le formulaire. Voici les données introduites :";
        echo '<br/>';
        echo 'Votre prénom est : ';
        echo $_POST['firstName']; // méthode post utilisé dans le formulaire registration
        echo '<br/>';
        echo 'Votre nom est : ';
        echo $_POST['lastName'];
        echo'<br/>';
        echo 'Votre mot de passe 1 est : ';
        echo $_POST['password1'];
        echo '<br/>';
        echo 'Votre mot de passe 2 est : ';
        echo $_POST['password2'];
        echo '<br/>';
        echo 'Vous êtes de sexe : ';
        echo $_POST['gender'];
        echo '<br/>';
        echo $_POST['favoriteWidget'];
        echo '<br/>';
        echo 'Recevoir newsletter : ';
        echo $_POST['newsletter'];
        echo '<br/>';
        echo 'Vos commentaires : ';
        echo $_POST['comments'];
        echo '<br/>';

        ?>

        Merci pour vos réponses, je sais que c'est un peu long. Je vais voir avec les guillemets, mon prof me dit toujours qu'il faut mettre des apostrophes.