Dicton du 25 Mai:
Bon vin à la Saint-Urbain, bourré du soir au matin.

Télécharger
Noter:

Ajouté le 05/02/2015
Visionné 9426 fois
4/5

Formulaire de contact en PHP

Description

Mise à jour le 15/11/2018

Un formulaire de contact est une chose utile pour votre site internet, ce petit script vous permettra d'en ajouter un facilement à votre site web.

Reste à vous de le styliser comme vous le souhaite grâce à HTML et CSS.

Le script est codé pour une page encodée en ANSI (ISO-8859-1), si vous utilisez UTF-8, utilisez le code source de mon commentaire en bas de page.

Code source (PHP)

<?php
/* Page: contact.php */
$VotreAdresseMail="votreemail@votresite.tld";//mettez ici votre adresse mail
if(isset($_POST['envoyer'])) { // si le bouton "Envoyer" est appuyé
//on vérifie que le champ mail est correctement rempli
if(empty($_POST['mail'])) {
echo "Le champ mail est vide";
} else {
//on vérifie que l'adresse est correcte
if(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i",$_POST['mail'])){
echo "L'adresse mail entrée est incorrecte";
}else{
//on vérifie que le champ sujet est correctement rempli
if(empty($_POST['sujet'])) {
echo "Le champ sujet est vide";
}else{
//on vérifie que le champ message n'est pas vide
if(empty($_POST['message'])) {
echo "Le champ message est vide";
}else{
//tout est correctement renseigné, on envoi le mail
//on renseigne les entêtes de la fonction mail de PHP
$Entetes = "MIME-Version: 1.0\r\n";
$Entetes .= "Content-type: text/html; charset=iso-8859-1\r\n";
$Entetes .= "From: Nom de votre site <".$_POST['mail'].">\r\n";//de préférence une adresse avec le même domaine de là où, vous utilisez ce code, cela permet un envoie quasi certain jusqu'au destinataire
$Entetes .= "Reply-To: Nom de votre site <".$_POST['mail'].">\r\n";
//on sécurise les champs
$Mail=htmlentities($_POST['mail'],ENT_QUOTES,"ISO-8859-1"); //ENT_QUOTES Convertit les guillemets doubles et les guillemets simples, en entités HTML, ISO-8859-1 est la norme pour les langues occidentales
$Sujet=htmlentities($_POST['sujet'],ENT_QUOTES,"ISO-8859-1");
$Message=htmlentities($_POST['message'],ENT_QUOTES,"ISO-8859-1");
//en fin, on envoi le mail
if(mail($VotreAdresseMail,utf8_encode($Sujet),nl2br($Message),$Entetes)) { //la fonction nl2br permet de conserver les sauts de ligne et la fonction urf8_encore de conserver les accents dans le titre
echo "Le mail à été envoyé avec succès !";
} else {
echo "Une erreur est survenue, le mail n'a pas été envoyé";
}
}
}
}
}
}
?>


Partie HTML du formulaire de contact:

Code source (HTML)

<!--
Les balises <form> sert à dire que c'est un formulaire
on lui demande de faire fonctionner la page contact.php
une fois le bouton "Envoyer" cliqué on lui dit également que c'est un formulaire de type "POST"
Les balises <input> sont les champs de formulaire
type="text" sera du texte
la balise <textarea> sert à dire qu'il faut afficher un champ de texte rectangulaire (les sauts de ligne sont possibles) au contraire des champ input text
Vous remarquerez que l'ont ne renseigne pas le type (type="") pour la balise textarea
cols="nombre de colone horizontale" rows="nombre de colone verticales"
type="submit" sera un bouton pour valider le formulaire
name="nom de l'input" sert à le reconnaitre une fois le bouton submit cliqué, pour le code PHPcontact.php
-->
<form action="contact.php" method="post">
Mail: <input type="text" name="mail" value="" />
<br />
Sujet: <input type="text" name="sujet" value="" />
<br />
Message: <textarea name="message" cols="40" rows="20"></textarea>
<br />
<input type="submit" name="envoyer" value="Envoyer" />
</form>

Commentaires

Génial!!! tout fonctionne parfaitement!!!

Merci beaucoup!!

Page contact en UTF-8

Code source (PHP)

$Entetes = "MIME-Version: 1.0\r\n";
$Entetes .= "Content-type: text/html; charset=UTF-8\r\n";
$Entetes .= "From: Nom de votre site <".$_POST['mail'].">\r\n";
$Entetes .= "Reply-To: Nom de votre site <".$_POST['mail'].">\r\n";
//on sécurise les champs
$Mail=htmlentities($_POST['mail'],ENT_QUOTES,"UTF-8");
$Sujet=htmlentities($_POST['sujet'],ENT_QUOTES,"UTF-8");
$Message=htmlentities($_POST['message'],ENT_QUOTES,"UTF-8");
//en fin, on envoi le mail
if(mail($VotreAdresseMail,$Sujet,nl2br($Message),$Entetes)) {
echo "Le mail à été envoyé avec succès !";
} else {
echo "Une erreur est survenue, le mail n'a pas été envoyé";
}

salut!! merci pour le tuto

Super script ! merci beaucoup, mais j'ai une question svp
Après avoir valider l'envoi du formulaire comment faire pour que l'utilisateur soit directement diriger sur une page de type "merci.html"

Cordialement

Bonjour, merci beaucoup!

Pour rediriger le membre il vous faut faire le traitement du formulaire avant n'importe quel code HTML, sinon vous allez avoir une erreur, ensuite, si tout est correct, rediriger le membre avec

Code source (PHP)

header("Location: ./merci.html");

Bonjour,
Merci, mais je ne suis pas doué ou est ce que je doit placer ce code dans le formulaire ?
Merci

Avant n'importe quel code HTML, sinon vous allez avoir une erreur. IL vous faut le mettre quand le traitement est OK, cela reste logique.

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée


ATTENTION! Ce formulaire est exclusivement réservé aux commentaires
Pour toutes demandes d'aide, veuillez ajouter votre demande sur le forum svp

Captcha * sept × 2 =

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter