|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: Formulaire de contact (avis sur code) (Lu 1385 fois) |
|
 |
Formulaire de contact (avis sur code)
« sur: le 29-10-2010 a 11:44:52 » |
|
|
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #1 sur: le 29-10-2010 a 22:36:19 » |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #2 sur: le 30-10-2010 a 02:57:22 » |
|
souifi
Membre récent

Hors-Ligne
Messages: 25

Je suis un lama!
|
<?php // Si "magic_quotes_gpc" est activé sur le serveur, on supprime les Antislash. if(get_magic_quotes_gpc()) $_POST = stripslashes($_POST);
// On vérifie que les champs existent et ne sont pas vide. if(isset($_POST['nom'], $_POST['mail'], $_POST['message']) && !empty($_POST['nom']) && !empty($_POST['mail']) && !empty($_POST['message'])){ // On vérifie le format de l'adresse E-mail if(!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) $notice = 'Votre adresse E-mail n\'ai pas valide'; // On vérifie le nom est composé d'un minimum de 3 caractères. if(strlen($_POST['nom']) < 3) $notice = 'Votre nom doit contenir un minimum de 3 caractères.'; // On vérifie le corp du message est composé d'un minimum de 15 caractères. if(strlen($_POST['message']) < 15) $notice = 'Votre message est trop court.'; // Si on a passé les vérifications sans problemes: Envois du mail... if(!isset($notice)){ $destinataire = $_POST['mail']; $expediteur = "your@email.com"; $objet = "Réponse au formulaire"; $reply_to = $expediteur; $headers = "From: $expediteur<$expediteur>\r\n"; $headers .= "Reply-To: $reply_to\r\n"; $headers .= "Content-Type: text/html; charset=utf-8\r\n"; $texte = htmlentities($_POST['nom'], ENT_QUOTES, 'utf-8') . '<br />'; $texte .= htmlentities($_POST['message'], ENT_QUOTES, 'utf-8'); // Envois du mail if(!mail($destinataire, $objet, $texte, $headers)) $notice = 'L\'envoi du courriel a échoué.'; else $notice = 'Votre message à bien été transmis.'; } } ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Formulaire</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <form action="" method="post"> <input type="text" name="nom" /><br /> <input type="text" name="mail" /><br /> <textarea name="message"></textarea><br /> <input type="submit" /><br /> <p><?php echo isset($notice) ? $notice : false; ?></p> </form> </body> </html> |
| |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #3 sur: le 30-10-2010 a 12:52:11 » |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #4 sur: le 30-10-2010 a 17:33:44 » |
|
souifi
Membre récent

Hors-Ligne
Messages: 25

Je suis un lama!
|
-Le seul traitement que tu effectue sur tes données est trim(), cela ne protège en rien mais supprime seulement les espaces au début et fin de variable. si tu veut éviter tout code malveillant il existe plusieurs fonctions php comme htmlentities. Je te conseil donc de faire par exemple:
$message = htmlentities(trim($_POST['message']), ENT_QUOTES, 'utf-8');
|
|
-Tu fait des vérification sous forme de conditions et non fonctions, donc il n'y a rien à retourner
if(strlen($nom) <= 2){ print("- Le champ nom est mal rempli"); return false; // Ligne à supprimer }
if(!preg_match("/^[\w\.-]+@[\w\.-]+\.[a-z]{2,3}$/i", $mail)){ print("- Adresse invalide !!"); return false; // Ligne à supprimer }
|
|
-Sinon a toi de créer tes propre fonctions de vérifications, il te restera plus que a les appeler.
function verif_lengths($string, $length){ if(strlen($string) < $length){ return false; }else{ return true; } }
if(!verif_lengths($nom, 3)){ echo 'votre champ est inférieur à 3 caractères'; }
|
|
-Pour vérifier l'adresse email, il y a déjà une fonction toute faite, pas besoin d'utiliser un preg_match, utilise filter_var avec le filtre "FILTER_VALIDATE_EMAIL"
-Au niveau de l'envoie de mail, le dernier paramètre sont les entêtes, Doc function mail(), chaque entête doivent être séparés par un caractère CRLF (\r\n). moi j'utilise en principe les 3 suivants:
$entete = "From: $mail_expediteur<$mail_expediteur>\r\n Reply-To: $mail_expediteur\r\n Content-Type: text/html; charset=utf-8\r\n"; |
|
Pour finir tu indique que le mail est envoyé à la seul condition que $nom, $mail, $message existent et ne doivent pas vide.... Pourquoi avoir donc fait des vérif? valide l'envoie au client seulement après être certain que le mail soit partit.
$mail = mail($destinataire, $objet, $texte, $entetes);
if($mail){ // Si le mail a été bien envoyé echo 'mail envoyé'; }
|
|
Suis pas douer pour les explication, je sais. J'espère que sa t'auras apporté un peu quand même. |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #5 sur: le 31-10-2010 a 14:16:09 » |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #6 sur: le 13-11-2010 a 22:38:42 » |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #7 sur: le 27-11-2010 a 19:02:22 » |
|
|
|
|
 |
Re:Formulaire de contact (avis sur code)
« Répondre #8 sur: le 03-01-2011 a 19:32:49 » |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|