PHP
Il est possible de placer CSS et javascript dans la partie HEAD d' un script HTML, mais PHP doit impérativement se trouver dans une page à part. Ici elle est nommée process.php, mais vous pouvez la renommer en faisant bien attention qu' elle corresponde bien à votre script HTML (action=process.php) et aussi dans javascript après $.ajax({ url:"process.php",
<?php
//pour éviter les vilains slashes dans le texte de votre message
if (get_magic_quotes_gpc()) {
function stripslashes_deep($comment)
{
$comment = is_array($comment) ?
array_map('stripslashes_deep', $comment) :
stripslashes($comment);
return $comment;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
//Retrieve form data.
//GET - l' utilisateur envoie les données utilisant AJAX
//POST -l' utilisateur n' a pas javascript installé, POST sera utilisé à la place
$name = ($_GET['name']) ? $_GET['name'] : $_POST['name'];
$email = ($_GET['email']) ?$_GET['email'] : $_POST['email'];
$website = ($_GET['website']) ?$_GET['website'] : $_POST['website'];
$comment = ($_GET['comment']) ?$_GET['comment'] : $_POST['comment'];
//flag to indicate which method it uses. If POST set it to 1
if ($_POST) $post=1;
//Simple server side validation for POST data, of course,
//you should validate the email
if (!$name) $errors[count($errors)] = 'Veuillez entrer votre pseudo.';
if (!$email) $errors[count($errors)] = 'Veuillez entrer votre adresse courriel.';
if (!$comment) $errors[count($errors)] = 'Veuillez entrer votre commentaire.';
//if the errors array is empty, send the mail
if (!$errors) {
//le destinataire c'est vous - indiquer votre vraie adresse courriel
$to = 'mon@adresse.mail';
//l' expéditeur est identifié ici
$from = $name . ' <' . $email . '>';
//Indiquer dans quelle page est situé le formulaire (surtout si vous avez plusieurs formulaires)
$subject = 'depuis (ma page)' . $name;
$message = '
<!DOCTYPE html><html lang=fr>
<head><meta charset=utf-8>
<style>
div
{font-size:14px}
</style>
</head>
<body>
<div><b>Pseudo:</b> ' . $name . '</div>
<div><b>Courriel:</b> ' . $email . '</div>
<div><b>Site web:</b> ' . $website . '</div>
<div><b>Commentaire:</b><br>' . nl2br($comment) . '</div>
</body>
</html>';
//envoi du courrier
$result = sendmail($to, $subject, $message, $from);
//if POST was used, display the message straight away
if ($_POST) {
if ($result) echo 'Merci, votre message a bien été envoyé.';
else echo 'Erreur innatendue. Veuillez réessayer plus tard';
//else if GET was used, return the boolean value so that
//ajax script can react accordingly
//1 means success, 0 means failed
} else {
echo $result;
}
//if the errors array has values
} else {
//display the errors message
for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>';
echo '<a href="url de la page contenant le formulaire">Retour</a>';
exit;
}
//Simple mail function with HTML header
function sendmail($to, $subject, $message, $from) {
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=uft-8" . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
$result = mail($to,$subject,$message,$headers);
if ($result) return 1;
else return 0;
}
?>
Formulaire en version autonome
Demo et ZIP contenant les fichiers nécessaires à l' installation de ce formulaire en individuel dans votre site.
Il peut convenir aussi bien à un site classique que à un site mobile ou responsive. Il est fortement conseillé de protéger les formulaires de contact avec un captcha.
Si j' ai assez de demandes je mettrai un ZIP en téléchargement.
DEMO
ZIP
Commentaires (4)
Sam Haïti
Commentaire : C' est fantastique
Muoi
Site web: http://tanklitunkli.com/
Commentaire : Do you have any tips for writing posts? That's where I constantly struggle and I simply end up staring vacant screen for long period of time.
webmaster
Commentaire : Sorry you probably give me a bad mail address. So it' s up to you.
Perle
Site web:
http://www.creaillusionfantasy.com/
Commentaire : Bonjour,
Merci pour les explications pour créer un formulaire.
Je suis débutante et vos explications sont nettes et précises.
Une question, comment ajouter une ligne pour que la personne qui remplit le formulaire, puisse joindre une image style une bannière dans son message.
Merci à vous.
webmaster
Commentaire : Attention votre site n' est pas responsive (vous utilisez une ancienne version de dreamweaver). Si vous voulez utiliser mon formulaire, vous devrez d' abord créer une page responsive. Un formulaire de contact c' est juste pour prendre contact. Après vous pouvez communiquer avec vos messageries respectives habituelles qui souvent permettent d' envoyer des pièces-jointes.
Un fichier image est un fichier binaire mais peut être converti en fichier texte base64 et peut donc être ajouté dans le textarea juste à la fin de votre message. À vous après, de le réencoder au format image/gif, image/jpg, image/png ou image/bmp par exemple.