Dicton du 23 Juillet:
À la Saint-Apollinaire, dernière semaille de laitue en pleine terre.

Télécharger
Noter:

Formulaire de contact en PHP

Description

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.

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-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z]{2,6}$#",$_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 sujet est correctement rempli
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

Bonjour,

Merci pour ce tuto mais cela ne fonctionne pas et je ne comprends pas : votreemail@votresite.tld ???

merci

Bonjour, mettez à cet variable, votre adresse mail.
Je viens de voir qu'il y avait une erreur au niveau des r et n dans les entêtes du mail, le script est solutionné et fonctionnel ;)

Merci de votre réponse! par contre dans le mail de réception, je ne vois pas apparaître le mail insérer dans le input du formulaire, qui permettrait de répondre directement.

Merci d'avance!

J'ai inversé $VotreAdressseMail par $_POST['mail'] ça devrai fonctionner maintenant

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

Merci beaucoup!!

Merci pour votre retour :)

pour moi ca ne marche pas meme si j'ai inversé la balise , pouvez vous m'envoyer le code html et php corrigés merci

Bonjour mostaki, il va falloir être plus précis dans votre demande s'il vous plaît, je ne comprends pas.

Avez-vous un message d'erreur qui s'affiche ?

Bonsoir Monsieur,Merci pour ton interet a mon message, je parlais d'un formulaire de contact,je pense que j'ai testé celui affiché sur ce site mais ca marchait pas , on me disait que le message a été bien envoyé mais je recois rien dans ma boite email sachant que je cherches un formulaire simple pour mon site si tu as une idée Monsieur ou tu connais des sources je te serai trop recconnaissant, je suis un débutant mais j'aime apprendre et bonne soirée avec du courage Monsieur

on me disait que le message a été bien envoyé mais je recois rien dans ma boite email


Avez-vous bien précisé votre adresse mail à:

Code source (PHP)

$VotreAdresseMail="votreemail@votresite.tld";//mettez ici votre adresse mail

Oui en effet ; j'ai mentionné mon adresse email à la place indiqué, ca m"a pris trois soirées a essayer, mais en vain, merci pour vos conseils Monsieurc'est a cause de vous que nous avancons

Bonjour,

c'est peut être du aux normes qui sont définies en ISO, essayez en mettant UTF-8 à la place des "iso-...." dans le code source et en remplaçant utf8_encode($Sujet) par $Sujet.

Je vous ai facilité la tâche en le faisant, dite moi si cela fonctionne, il se peut que ça fonctionne pas encore, dans ce cas, il faudra peut être voir au niveau de cette ligne: et mettre une adresse mail avec le même domaine où vous utilisez ce code

$Entetes .= "From: Nom de votre site <".$_POST['mail'].">\r\n";

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
enfait j'ai suivie toutes les instructions mais cela ne marche on m'ecrit le message n'a pas été envoyé

Bonjour,

J'ai crée le fichier contact.php, j'y ai collé le script tel quel (hormis l'adresse émail que j'ai adapté) mais lorsque j'envoi le formulaire, j'ai un page d'erreur: "cette page ne fonctionne pas".


voici le code bootsrap que j'ai sur ma page:


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

<div class="col-sm-7 slideanim">
<div class="row">
<div class="col-sm-6 form-group">
<input class="form-control" id="name" name="name" placeholder="Entrez votre nom" type="text" required>
</div>
<div class="col-sm-6 form-group">
<input class="form-control" id="email" name="email" placeholder="Adresse email" type="email" required>
</div>
</div>
<textarea class="form-control" id="comments" name="comments" placeholder="Commentaire" rows="5"></textarea><br>
<div class="row">
<div class="col-sm-12 form-group">
<button class="btn btn-default pull-right" type="submit">Envoyer</button>
</div>
</div>
</div>
</div>
</div>

</form>

Bonjour,

pour le "action" du formulaire, mettez l'adresse complète de votre site car je pense que votre erreur est due au fait que vous avez la page contact.php dans un dossier, mettez donc:

action="votresite.tld/votre dossier/contact.php"

Bonjour,

voilà, j'ai crée un dossier contact dans le lequel j'y ai mis le fichier contact.php .

voici la ligne de code corrigée mais cela ne fonctionne toujours pas.

j'ai le message d'erreur httperror500

"<form action="monsite.tld/contact/contact.php" method="post">"

Je ne vois pas là, désolé, certainement due à une erreur htaccess, regardez de ce côté là.

Ajouter un commentaire

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

Captcha * sept - 2 =

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

Retour à la liste des scripts

Flag Counter