tchouf Posté 22 Août 2006 Posté 22 Août 2006 bonjour, je suis tout débutant dans le language php, quelqu'un d'autre a (ou avait) un problème avec ce même script trouvé sur internet, mais le mien est différent le script fonctionne sans problème, sauf que je ne reçois pas l'adresse email de l'expéditeur, mais bien mon adresse email qui est mariée à mon espace chez mon provider, car je ne l'ai pas indiquée dans mon script ... la faute est elle dans le script, ou bien chez mon provider qui refuserait de mettre une autre adresse que la mienne comme expéditeur? voici mon script, merci pour vos lumières <?php// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés$email_webmaster = "christiane_AT_scarlet.be";// === traitement des données du formulaire ============================================================if (isset($_POST["envoyer"])){// le formulaire a été soumis $etat = "erreur";// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur// --- mise en forme des champs saisis dans le formulaire lors de sa soumission --- if (isset($_POST["email_expediteur"])) { $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"])); } if (isset($_POST["titre"])) { $_POST["titre"]=trim(stripslashes($_POST["titre"])); } if (isset($_POST["message"])) { $_POST["message"]=trim(stripslashes($_POST["message"])); } // --- test de la validité des champs saisis --- if (empty($_POST["email_expediteur"])) {// il manque l'email de l'expéditeur $erreur="! ! ! Saisissez votre adresse email... ! ! !"; } if (empty($_POST["titre"])) {// il manque à qui s'adresse le message $erreur="! ! ! Saisissez à qui s'adresse ce message ... ! ! !"; } elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){// l'adresse e-mail n'est pas valide $erreur=" ! ! ! Votre adresse e-mail n'est pas valide... ! ! !"; } elseif (empty($_POST["message"])) {// le message est vide $erreur="! ! ! Saisissez un message... ! ! !"; } else {// --- tous les champs sont correctement remplis: on pourra envoyer le mail --- $etat="ok"; }}else {// --- le formulaire n'a pas été soumis --- $etat="attente";}// === fin de traitement des données du formulaire =======================================================?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Formulaire de contact</title></head><body><h1>Nous contacter</h1><?phpif ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur if ($etat=="erreur"){//le formulaire a été soumis avec une erreur echo "<p><strong>".$erreur."</strong></p>\n";// afficher le message d'erreur }?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br /> <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php if (!empty($_POST["email_expediteur"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES); } ?>" /> </p> <p> <label for="titre">Message pour (indiquez à qui s'adresse ce message) </label> <br /> <input type="text" size="40" name="titre" id="titre" value="<?php if (!empty($_POST["titre"])) {// le titre du message a été saisi: le réafficher echo htmlspecialchars($_POST["titre"],ENT_QUOTES); } ?>" /> </p> <p><label for="message">Message (obligatoire): ! POUR L'INSTANT, RAJOUTEZ VOTRE ADRESSE EMAIL DANS LE MESSAGE SVP !</label><br /> <textarea name="message" id="message" cols="40" rows="5"><?php if (isset($_POST["message"])) {// le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea> </p> <p><input type="submit" name="envoyer" value="Envoyer" /> </p> </form><?php}else {// le formulaire a été soumis sans erreur, on envoie le mail $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n"; $entete .= "MIME-Version: 1.0"; if (@mail($email_webmaster,$_POST["titre"] ,$_POST["message"],$entete)){// mail envoyé echo "Votre message a été envoyé.<br />\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n"; } else {// erreur lors de l'envoi du mail echo "Un problème s'est produit lors de l'envoi du message.\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n"; }}?></body></html></body></html> Edit Modérateur : merci d'utiliser le BBCode pour mieux présenter son post
Harry_20 Posté 22 Août 2006 Posté 22 Août 2006 Bonjour tchouf, J'ai testé ton script qui fonctionne normalement. Je n'ai pas une adresse expéditeur comportant le nom de domaine du site. La fonction d'envoi du mail est correctement programmée. Donc l'explication la plus probable est que tu as un hébergeur qui n'autorise pas cette fonction dans la totalité : l'adresse expéditeur ne peut être changée. J'ai eu le cas avec Lycos en hébergement gratuit. Avec un payant, le problème a disparu Bon travail pour la suite
tchouf Posté 22 Août 2006 Auteur Posté 22 Août 2006 merci beaucoup pour ta réponse, je m'en doutais un peu que c'était mon provider, le blème, c'est que c'est mon fournisseur d'accès à internet, et que donc je paye! (même cher) si jamais tu pouvais facilement ajouter ou transformer une ligne de ce code, pour que l'adresse email se retrouve dans le message, ça serait vraiment sympa ... car c'est ça qui m'importe, du moment que je peux la lire quelque part, ça sera bien pour moi merci d'avance si t'as 5 min à me consacrer
captain_torche Posté 22 Août 2006 Posté 22 Août 2006 Tu peux éventuellement la coller au début du message, avec quelque chose du genre : $_POST['message'] = "Email de l'expéditeur : ".$_POST['email_expediteur']."\r\n".$_POST['message'];
tchouf Posté 22 Août 2006 Auteur Posté 22 Août 2006 (modifié) merci à toi , ça fonctionne! "you are a genius" comme on dit chez nous je suis sauvé Modifié 22 Août 2006 par tchouf
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant