26
Tout d'abord créez 2 fichiers : contact_form.html et contact.php. Le premier fichier contiendra le code HTML du formulaire et le second traitera les données du formulaire.
HTML
Ci-dessous vous verrez le code HTML du formulaire de contact
|
1
2
3
4
5
6
7
8
9
10
|
<form action="contact.php" method="post"> Your name<br> <input type="text" name="cf_name"><br> Your e-mail<br> <input type="text" name="cf_email"><br> Message<br> <textarea name="cf_message"><br> <input type="submit" value="Send"> <input type="reset" value="Clear"></form> |
Et c'est comme ça que vous le verrez dans le navigateur
Jetons un coup d’œil sur certains aspects principaux. La balise <form> devrait avoir 2 attributs supplémentaires :
action=”contact.php” – cet attribut spécifie où envoie les données à partir des champs du formulaire de contact, lorsqu'il a été soumis
method=”post” – cet attribut spécifie comment envoyer des données du formulaire au fichier spécifié dans l'attribut action. Les balises <input> et <textarea> devrait avoir un attribut “name” avec un identifiant unique. Cet attribut est utilisé pour identifier les données de formulaire après leur soumission au serveur. Et les 2 éléments d’entrée utilisés comme boutons Send et Clear, on devrait avoir type=”submit” assigné à lui et l'autre type=”reset”
C’est essentiellement ça. Aussi facile que ça en a l'air.
PHP
Maintenant, pour le fichier contact.php qui saisira réellement les données des champs, composez un message et envoyez-le à votre email. Vous pouvez télécharger le fichier contact.php d'ici. Vous trouverez ci-dessous le code du fichier contenant des commentaires sur ses principales sections.
Affectation des données envoyées à partir des champs du formulaire de contact (cf_name, cf_email, cf_message) aux variables php ($cf_message, $field_email, $field_message)
|
1
2
3
|
$field_name = $_POST['cf_name'];$field_email = $_POST['cf_email'];$field_message = $_POST['cf_message']; |
$mail_to contiendra l'e-mail du propriétaire du site, c'est là que l'e-mail est envoyé. Vous pouvez spécifier plusieurs emails en les séparant par une virgule (mail-one@template-help.com, mail-two@template-help.com)
|
1
|
$mail_to = 'test@test-mail.com'; |
Objet du mail que vous recevez du formulaire de contact
|
1
|
$subject = 'Message from a site visitor ' . $field_name; |
Construire le corps du message
|
1
2
3
|
$body_message = 'From: '.$field_name."\n";$body_message .= 'E-mail: '.$field_email."\n";$body_message .= 'Message: '.$field_message; |
Construire les en-têtes du message
|
1
2
|
$headers = "From: $cf_email\r\n";$headers .= "Reply-To: $cf_email\r\n"; |
Définir la fonction mail() et l'assigner à la variable $mail_status, qui est utilisée ci-dessous pour vérifier si le courrier a été envoyé ou non
|
1
|
$mail_status = mail($mail_to, $subject, $body_message, $headers); |
Si la fonction mail() est exécutée avec succès alors faites le code ci-dessous
|
1
2
3
4
5
6
7
8
9
|
if ($mail_status) { ?> <script language="javascript" type="text/javascript"> // Print a message alert('Thank you for the message. We will contact you shortly.'); // Redirect to some page of the site. You can also specify full URL, e.g. http://template-help.com window.location = 'contact_page.html'; </script><?php} |
Si la fonction mail() échoue, alors exécutez le code suivant
|
1
2
3
4
5
6
7
8
9
|
else { ?> <script language="javascript" type="text/javascript"> // Print a message alert('Message failed. Please, send an email to gordon@template-help.com'); // Redirect to some page of the site. You can also specify full URL, e.g. http://template-help.com window.location = 'contact_page.html'; </script><?php}?> |
