TUTO PHP - Formulaire de contact

PrimFX Boris ('PrimFX') Le 19 avril 2015

Je vous ai montré la semaine dernière comment envoyer des mails en PHP... Je vous propose donc aujourd'hui un petit cas pratique avec la réalisation d'un petit formulaire de contact :-)

  • Code complet du formulaire de contact :
<?php
if(isset($_POST['mailform'])) {
   if(!empty($_POST['nom']) AND !empty($_POST['mail']) AND !empty($_POST['message'])) {
      $header="MIME-Version: 1.0\r\n";
      $header.='From:"nom_d'expediteur"<votre@mail.com>'."\n";
      $header.='Content-Type:text/html; charset="uft-8"'."\n";
      $header.='Content-Transfer-Encoding: 8bit';
      $message='
      <html>
         <body>
            <div align="center">
               <img src="http://www.primfx.com/mailing/banniere.png"/>
               <br />
               <u>Nom de l\'expéditeur :</u>'.$_POST['nom'].'<br />
               <u>Mail de l\'expéditeur :</u>'.$_POST['mail'].'<br />
               <br />
               '.nl2br($_POST['message']).'
               <br />
               <img src="http://www.primfx.com/mailing/separation.png"/>
            </div>
         </body>
      </html>
      ';
      mail("mail@destinataire.com", "Sujet du message", $message, $header);
      $msg="Votre message a bien été envoyé !";
   } else {
      $msg="Tous les champs doivent être complétés !";
   }
}
?>
<html>
   <head>
      <meta charset="utf-8" />
   </head>
   <body>
      <h2>Formulaire de contact !</h2>
      <form method="POST" action="">
         <input type="text" name="nom" placeholder="Votre nom" value="<?php if(isset($_POST['nom'])) { echo $_POST['nom']; } ?>" /><br /><br />
         <input type="email" name="mail" placeholder="Votre email" value="<?php if(isset($_POST['mail'])) { echo $_POST['mail']; } ?>" /><br /><br />
         <textarea name="message" placeholder="Votre message"><?php if(isset($_POST['message'])) { echo $_POST['message']; } ?></textarea><br /><br />
         <input type="submit" value="Envoyer !" name="mailform"/>
      </form>
      <?php if(isset($msg)) {
         echo $msg;
      }
      ?>
   </body>
</html>

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 10

  • emirouzaud Le 16 mars, à 12:15 | Répondre

    J'ai trouvé !! c'est la fameuse ligne : 'Reply-to......' :)

  • emirouzaud Le 16 mars, à 11:46 | Répondre

    Bonjour à tous et à toutes !

    Très bon tuto, cependant je me demandais comment faire pour que lors de la réception du mail le mail expéditeur soit bien celui qui a envoyé le mail et pas notre adresse ?
    Je m'explique : avec ce tuto en effet on voit dans le corps du mail n'adresse mail de celui qui veut envoyer le mail, mais si on veut répondre sur Gmail par exemple, on se répond à nous-même.

    Quelqu'un a une idée ?

  • juliebdx Le 19 mai, à 21:08 | Répondre

    Merci beaucoup !!!!!!!!!!!!!!!!!!

    nb: il manque un \ après :
    nom_d'
    $header.='From:"nom_d'expediteur"<votre@mail.com>'."\n";

  • Dinars Le 16 mai, à 13:12 | Répondre

    @paco sur http://a-pellegrini.developpez.com/tutoriels/php/mail/ tu trouveras comment faire

  • TobiasBonifay Le 22 février, à 14:23 | Répondre

    "Vous avez atteint la limite de codes visibles sans compte Premium. Pour afficher les codes de tutoriels sans limite, essayez les comptes Premium !"
    Je me suis inscrit aujourd'hui, et je n'ai encore vu aucun code....

  • R00T Le 27 septembre, à 17:51 | Répondre

    Bonjour, super tuto !
    Malheureusement je rencontre un "petit" problème lors de l'envoi du mail. Après avoir cliqué sur envoyer le mail, ça recharge la page, m'affiche votre mail a bien été envoyer mais tout en haut de la page s'affiche une message d'erreur php :/

    Function Location
    1 0.0016 250080 {main}( ) ...\contact.php:0
    2 0.0017 251040 mail ( ) ...\contact.php:22

  • mencisv Le 28 février, à 09:42 | Répondre

    Bonjour,
    En fait il n'y a pas de problème, j'en suis d'ailleurs confus, je n'étais tout simplement pas sous environnement php donc le code ne pouvait pas être interprété.... je débute mais je progresse

  • Kalmando Le 27 février, à 19:35 | Répondre

    @mencisv à tu installé le fake-sendmail ?

  • mencisv Le 26 février, à 18:06 | Répondre

    Bonjour,
    J'ai récupérer le fichier formulaire_de_contact.php . Quand je l'ouvre avec Notepad++ et que je l’exécute soit dans firefox, chrome ou IE cela ne fonctionne pas.....
    J'ai essayé de voir ou était le bug en regardant plusieurs fois la vidéo je ne vois pas, et mes connaissances en php sont trop limitées pour faire cette analyse. Pouvez vous contrôler de votre côté

  • paco Le 2 novembre, à 17:16 | Répondre

    Cool le tuto!
    Et si je souhaite envoyé un mail à plusieurs contacts à la fois avec une pièce jointe, comment faire?
    merci!!!