ricus1er Posté 27 Décembre 2005 Posté 27 Décembre 2005 Bonjour à tous, J'ai mis en place un formulaire de contact sur mon site, que vous pouvez trouvez à l'adresse suivante : http://www.litzler.fr/contact.htm. Tout semble marcher correctement, mais je ne reçois aucun mail, malgré le message de succès qui arrive. Est-ce que quelqu'un sait d'où ça peut venir ? Merci pour votre aide, Eric
Chark Posté 27 Décembre 2005 Posté 27 Décembre 2005 (modifié) J'ai parcouru très rapidement les codes sources de tes 2 pages ( contact.php et traitement.php ) ==> je ne trouve nulle part de fonctions "mailto".. De ce que je vois rapidement, à la page "contact", l'internaute saisi ses informations et cela envoie ensuite à la page "traitement" qui affiche que c'est ok MAIS je ne voit nulle part une fonction qui permette d'envoyer ces info a une adresse email.. question: ce sont des pages php que tu "rewrite" en htm ( si c'est le cas faudrais que tu donne le code php qui ne s'affiche pas en navigation directe ) ? Modifié 27 Décembre 2005 par Chark
v4np13 Posté 27 Décembre 2005 Posté 27 Décembre 2005 Il nous faudrait le code PHP de la page traitement.php pour pouvoir t'aider
Anonymus Posté 27 Décembre 2005 Posté 27 Décembre 2005 Il nous faudrait le code PHP de la page traitement.php pour pouvoir t'aider <{POST_SNAPBACK}> Oui. Le résultat html du traitement du formulaire ne suffit pas à trouver ce genre de problèmes, il faut le code php.
ricus1er Posté 29 Décembre 2005 Auteur Posté 29 Décembre 2005 (modifié) Effectivement, c'est pas très malin de ma part... Voici le code du fichier traitement.php : <?php$adresse="monadressemail";$from="From: $requiredPrenom $requiredNom<$requiredEmail>\r\n";$from.="Reply-To: $requiredPrenom $requiredNom <$requiredEmail>\n";$from.="X-priority:3\n";$sujet.="$requiredSujet";$texte="<html>";$texte.="$requiredcommentaires";$texte.="</html>";$from.="MIME-Version: 1.0\r\n";$from.="Content-Type: text/html"; if (mail($adresse,$sujet,$texte,$from)){include("index.php"); header_litzler(); echo"<center><font color=blue><br><h4>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</h4></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center><br>";footer_litzler();}else {include("index.php"); header_litzler(); echo"<center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href='mailto:$adresse'>classiquement</a>";footer_litzler();}?> Modifié 29 Décembre 2005 par ricus1er
Anonymus Posté 29 Décembre 2005 Posté 29 Décembre 2005 if (mail($adresse,$sujet,$texte,$from)){ Il faut savoir que la fonction 'mail' renvoie toujours un booléen. Sinon, essaies d'afficher le texte que tu envoies dans ton mail, avant de l'envoyer. echo"<p>adresse : -".$adresse."-";echo"<p>sujet : -".$sujet."-";etc.. Au moins, tu en sauras plus sur ce que tu envoies précisément. 2/, enlèves les lignes 'headers' les unes à la suite des autres, histoire de voir où ca plante. Un coup de : // $from="From: $requiredPrenom $requiredNom<$requiredEmail>\r\n";// $from.="Reply-To: $requiredPrenom $requiredNom <$requiredEmail>\n";// $from.="X-priority:3\n";$sujet.="$requiredSujet";$texte="<html>";$texte.="$requiredcommentaires";$texte.="</html>";// $from.="MIME-Version: 1.0\r\n";// $from.="Content-Type: text/html"; et ajoutes y un peu de 'trim' autour des variables que tu recois (et vérifies que ce que tu recois ne comporte rien d'offensif...)
ricus1er Posté 29 Décembre 2005 Auteur Posté 29 Décembre 2005 Ouhla.... J'ai oublié de préciser que je suis un webmaster très débutant. Je me suis inspiré de conseils sur d'autres sites, donc je vais essayer de faire ce que tu as dit, mais j'avoue que j'ai besoin d'une ou deux étapes supplémentaires, parce que tu vas trop vite pour moi. Il faut que je colle le code que tu m'as envoyé dans mon fichier traitement.php, c'est ça ? Merci du tps que tu m'accordes...
Anonymus Posté 29 Décembre 2005 Posté 29 Décembre 2005 remplaces les lignes suivantes : $from="From: $requiredPrenom $requiredNom<$requiredEmail>\r\n";$from.="Reply-To: $requiredPrenom $requiredNom <$requiredEmail>\n";$from.="X-priority:3\n";$sujet.="$requiredSujet";$texte="<html>";$texte.="$requiredcommentaires";$texte.="</html>";$from.="MIME-Version: 1.0\r\n";$from.="Content-Type: text/html"; par : // $from="From: $requiredPrenom $requiredNom<$requiredEmail>\r\n";// $from.="Reply-To: $requiredPrenom $requiredNom <$requiredEmail>\n";// $from.="X-priority:3\n";$sujet.="$requiredSujet";$texte="<html>";$texte.="$requiredcommentaires";$texte.="</html>";// $from.="MIME-Version: 1.0\r\n";// $from.="Content-Type: text/html"; et juste avant la ligne : if (mail($adresse,$sujet,$texte,$from)){ tu mets : echo"<p>adresse : -".$adresse."-";echo"<p>sujet : -".$sujet."-";echo"<p>texte : -".$texte."-";echo"<p>from : -".$from."-"; Et... Regardes le résultat du code source (pas l'affichage à l'écran.. )
ricus1er Posté 29 Décembre 2005 Auteur Posté 29 Décembre 2005 C'est ce que j'ai fait. En apparence, rien ne change, mais je reçois le mail suivant de la part de OVH qui ne correspond pas à ce que j'ai écris dans le formulaire : -----Message d'origine----- De : litzler [mailto:nom_AT_60gp.ovh.net] Envoyé : vendredi 30 décembre 2005 00:30 À : Monadressemail Objet : <html></html> Tu as une idée de ce que c'est ?
ricus1er Posté 29 Décembre 2005 Auteur Posté 29 Décembre 2005 Autant pour moi, j'ai pas bien regardé. Une fois que j'ai recopié tout ce que tu m'as dit, j'ai : adresse : -mon adresse- sujet : -- texte : -- from : -- ça veut dire que les contenus ne sont pas détectés, mais je sais pas d'où ça vient... Je vais essayer de voir ce que c'est.
Anonymus Posté 29 Décembre 2005 Posté 29 Décembre 2005 Ca vient (très probablement) du fait que ton serveur ne récupère pas automatiquement les variables postées par POST. Donc, toutes les variables du formulaire doivent être appelées ainsi : $_POST['sujet'] au lieu de $sujet. Essaies ceci, tant qu'à faire : echo"<p>sujet : -".$_POST['sujet']."-";echo"<p>texte : -".$_POST['texte']."-";echo"<p>from : -".$_POST['from."-"; Une précision : Les tirets que je mets de chaque coté de la variable sont faits pour : 1/ détecter si la variable n'affiche pas un espace (ce que l'on ne détecterait pas si l'on n'avait pas un caractère de fin) 2/ détecter les retour chariots Voilà. ps : ton 'monadressemail' est en clair, dans ton 2e message.
ricus1er Posté 30 Décembre 2005 Auteur Posté 30 Décembre 2005 ça y est, c'est quasiment réglé. Merci beaucoup pour ton aide, sur ce forum ou en dehors !! A bientôt Eric
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant