Forum Clubic

Amélioration formulaire de contact

Bonjour,

Voici mon code pour le traitement du formulaire de contact de mon site; Je souhaiterai modifier la fonction “envoie copie e-mail”, par un e-mail personnalisé, ex: Mr x, nous avons bien reçu votre message, ect,ect… Car le problème là c’est que le mail que je reçois, c’est le même que reçois le visiteur, pas terrible donc.

Merci de votre aide.

<?php /* ******************************************************************************************** CONFIGURATION ******************************************************************************************** */ // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule $destinataire = 'moi@moi.tld'; // copie ? (envoie une copie au visiteur) $copie = 'oui'; // 'oui' ou 'non' // Messages de confirmation du mail $message_envoye = "Votre message nous est bien parvenu !"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; // Messages d'erreur du formulaire $message_erreur_formulaire = "Vous devez d'abord envoyer le formulaire."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; /* ******************************************************************************************** FIN DE LA CONFIGURATION ******************************************************************************************** */ // on teste si le formulaire a été soumis if (!isset($_POST['envoi'])) { // formulaire non envoyé echo '

'.$message_erreur_formulaire.'

'."\n"; } else { /* * cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { $text = trim($text); // delete white spaces after & before text if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; }; /* * Cette fonction sert à vérifier la syntaxe d'un email */ function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; // formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; // On va vérifier les variables et l'email ... $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')) { // les 4 variables sont remplies, on génère puis envoie le mail $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n"; // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; // Remplacement de certains caractères spéciaux $message = str_replace("'","'",$message); $message = str_replace("’","'",$message); $message = str_replace(""",'"',$message); $message = str_replace('
','',$message); $message = str_replace('
','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); // Envoi du mail if (mail($cible, $objet, $message, $headers)) { echo '

'.$message_envoye.'

'."\n"; } else { echo '

'.$message_non_envoye.'

'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '

'.$message_formulaire_invalide.' Retour au formulaire

'."\n"; }; }; // fin du if (!isset($_POST['envoi'])) ?>

Windows Vista / Firefox 3.6.13

Peut-être que en récupérant dans le nom de la personne connecté et en l’envoyant en paramètre de ta fonction qui génére ton message, ça marchera :wink:

salut,

En réalité, c’est un formulaire de contact, donc j’ai bien le mail, le nom de la personne à qui je souhaite envoyer le mail; Mais je ne trouve pas la manière de dire, en PHP, envoyer un mail à X@live.fr, avec comme objet: Accusé de réception : "Nous avons bien reçu votre mail…, ect…

La variable de l’email, c’est §email
Le Nom c’est: §nom

Et maintenant reste à faire une fonction php, qui puisse envoyer un mail… Mais là, je seiche ;°)

bonjour,

tu as une fonction mail en php php.net…

En suite pour préparer ton objet : tu fais un truc du genre $objet=“Accusé de réception : de ton “site””; $msg="\nBonjour monsieur".$nom." nous avons bien reçut votre inscription\n.";

Ensuite tu met l’email donc ça va donné :

mail(’$email’, ‘$objet’, $msg);

Et de souvenir il te renvoi un bool donc tu pourra testé s’il a bien était envoyé…

j’espère t’avoir aidé…

mail(’$email’, ‘$objet’, $msg); ne fonctionnera pas, mais mail($email, $objet, $msg); oui.