Formulaire de contact en PHP

Dans ce tutoriel, vous allez apprendre à faire un formulaire de contact en PHP. Concrètement, cela permet à vos visiteurs de vous envoyer des emails, via un formulaire. Vous recevrez donc des emails, avec le message du visiteurs, son pseudo, son adresse email (pour lui répondre c’est plus pratique :p) et d’autres informations comme son site internet. C’est simple à mettre en place et pratique !

Pour une fois, c’est un tutoriel qui n’est pas très long et il n’y a pas de grosses difficultés, hormis les regex. Si vous avez un peu de mal avec ça, je vous conseille de lire le tutoriel disponible sur le site du zéro, vous pouvez aussi regarder le tutoriel sur le bbcode et geshi qui contient pas mal d’expression régulière.
Ensuite, je n’ai pas évoqué un problème dans la vidéo, ce sont les bots. Les bots pour faire simple, c’est des systèmes qui remplissent automatiquement les champs sur des sites, pour spammer. Pour éviter cela, il faudrait ajouter un captcha, ce n’est pas super compliqué à mettre en place mais je n’avais pas envie de faire une vidéo trop longue. Il existe d’autres méthodes pour piéger les bots, comme le champs invisible. L’idée, c’est de créer un champ, de type input par exemple, qui n’est pas visible pour l’utilisateur normal (on le cache avec du CSS par exemple). Le robot qui remplie tout automatiquement, va remplir ce champ invisible, et par conséquent on peut les détecter comme ça. De plus c’est simple à mettre en place (CSS + une condition en php).

Maintenant les codes.

1. Le code du formulaire

<form method="post" target="" id="formulaire_contact">

<fieldset>
<legend>Formulaire de contact</legend>
<label for="pseudo">Pseudo* :</label><input type="text" name="pseudo" id="pseudo" value="<?php if(isset($_POST['pseudo'])) echo htmlspecialchars($_POST['pseudo']); ?>"/><br/>
<label for="email">Email* :</label><input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo htmlspecialchars($_POST['email']); ?>" /><br/>
<label for="site">Site :</label><input type="text" name="site" id="site" value="<?php if(isset($_POST['site'])) echo htmlspecialchars($_POST['site']); ?>" /><br/>
<label for="message">Message* :</label><textarea name="message" id="message"><?php if(isset($_POST['message'])) echo htmlspecialchars($_POST['message']); ?></textarea><br/>
<input type="submit" value="Envoyer" /> <span style="color:red;"><?php echo $erreur; ?></span><span style="color:green"><?php echo $info;?></span>
</fieldset>

</form>

2. Le code CSS pour la mise en forme (Regarder ce tutoriel aussi)

3. Le code PHP qui traite les données et envoie le mail

label {
display:block;
width:150px;
float:left;
text-align:left;
padding-right:5px;
margin-bottom:2px;
}


fieldset
{
border: solid 1px #222;
}
fieldset legend
{
padding: 0 10px;
border-left: #222 1px solid;
border-right: #222 1px solid;
font-size: 1.2em;
color: #222;

}
#formulaire_contact textarea
{
width:180px;
height:150px;
}


Télécharger les sources en .zip

Télécharger les sources en .tar.gz

Voilà, le tutoriel est fini, j’espère que vous avez compris le principe et surtout n’hésitez pas à modifier le code ! Si vous avez des questions, laissez un commentaire ou allez faire un tour sur le forum.

(Image à la une : PHP code)