Aller au contenu

Problème avec un formulaire de contact


Sujets conseillés

Posté

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

Posté (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é par Chark
Posté
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.

Posté (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é par ricus1er
Posté

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...)

Posté

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...

Posté

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.. )

Posté

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 ?

Posté

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.

Posté

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. :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...