Un formulaire de contact simple

Pratiquement indispensable sur un site web, le formulaire de contact est un moyen de permettre aux visiteurs de contacter le webmaster du site.
Nous allons voir ici comment créer un formulaire de contact simple.

La fonction mail()

Vous vous en doutez, le mail ne va pas s'envoyer tout seul.
Pour se faire, nous allons utiliser la fonction mail() de php.

Cette fonction est assez simple d'utilisation :

$destinataire = "exemple@mail.com";
$objet        = "la fonction mail";
$message      = "mon premier mail avec php";

mail( $destinataire , $objet , $message );

Cet exemple va envoyer un mail à exemple@mail.com ayant comme objet la fonction mail et comme message mon premier mail avec php.

Notez que dans l'article, nous utiliserons un paramètre en plus de la fonction mail() qui permettra de spécifier l'expéditeur.

Le formulaire (contact.html)

Nous devons créer une page html qui contiendra le formulaire. Nous y mettrons des input pour l'adresse email de l'expéditeur et l'objet du message et un textarea pour le contenu du message.

<h1>Formulaire de contact</h1>
<form action="verif.php" method="post">
  <p>
    Votre email : <br />
    <input name="email" type="text" />
  </p>
  <p>
    L'objet du message : <br />
    <input name="objet" type="text" />
  </p>
  <p>
    Le message : <br />
    <textarea name="message" rows="5" cols="30"></textarea>
  </p>
  <p> <input type="submit" value="Envoyer" /> </p>
</form>

Ce formulaire est assez simpliste mais vous pourrez bien entendu l'améliorer.

La page de vérification (verif.php)

C'est cette page qui va envoyer le mail si tous les champs ont bien été remplis.

Nous commençons donc par récupérer et tester les valeurs des différents champs du formulaire :

/* Email du destinataire (mettez ici votre email) */
$destinataire = "webmaster@monsite.com";

/* Récupération */
$email = $_POST['email'];
$objet = $_POST['objet'];
$message = $_POST['message'];
$header = "From: " . $_POST['email'];

/* Vérification */
if ( $objet == "" ) {
  echo "Veuillez indiquer un objet.";
  $erreur = true;
}
if ( $message == "" ) {
  echo "Veuillez indiquer un message.";
  $erreur = true;
}

Nous n'avons pas encore testé la validité du mail de l'expéditeur, pour y arriver, nous allons utiliser une méthode trouvée sur internet.

/* Vérification du mail */
$email_regex = "^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+.[a-z0-9-]";
if ( $email == "" OR !eregi( $email_regex , $email ) ) {
  echo "Veuillez indiquer un email valide.";
  $erreur = true;
}

Ceci fait, il ne nous reste plus qu'à envoyer le mail si aucune erreur a été trouvée :

/* Envoi du mail */
if ( !$erreur ) {
  mail( $destinataire , $objet , $message , $header );
  echo "Le message a été envoyé.";
}

Le mot de la fin ?

Have Fun ;)

comments powered by Disqus