probleme de formulaire. adiez moi svp

probleme de formulaire. adiez moi svp - PHP - Programmation

Marsh Posté le 26-01-2008 à 01:02:46    

Bonjour,
j'ai un petit probleme avec mon formulaire en php.
 
voici le code pour le traitement_formulaire.php
 

Code :
  1. <?php
  2. /*
  3.  ********************************************************************************************
  4.  CONFIGURATION
  5.  ********************************************************************************************
  6. */
  7. // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
  8. $destinataire = "monadresse@hotmail.com";
  9. // copie ? (envoie une copie au visiteur)
  10. $copie = "oui";
  11. // Messages de confirmation du mail
  12. $message_envoye = "Votre message nous est bien parvenu !";
  13. $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
  14. // Messages d'erreur du formulaire
  15. $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
  16. $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
  17. /*
  18.  ********************************************************************************************
  19.  FIN DE LA CONFIGURATION
  20.  ********************************************************************************************
  21. */
  22. // on teste si le formulaire a été soumis
  23. if (!isset($_POST['envoi']))
  24. {
  25.  // formulaire non envoyé
  26.  echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  27. }
  28. else
  29. {
  30.  /*
  31.   * cette fonction sert à nettoyer et enregistrer un texte
  32.   */
  33.  function Rec($text)
  34.  {
  35.   $text = trim($text); // delete white spaces after & before text
  36.   if (1 === get_magic_quotes_gpc())
  37.   {
  38.    $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  39.   }
  40.   else
  41.   {
  42.    $stripslashes = create_function('$txt', 'return $txt;');
  43.   }
  44.   // magic quotes ?
  45.   $text = $stripslashes($text);
  46.   $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
  47.   $text = nl2br($text);
  48.   return $text;
  49.  };
  50.  /*
  51.   * Cette fonction sert à vérifier la syntaxe d'un email
  52.   */
  53.  function IsEmail($email)
  54.  {
  55.   $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  56.   return (eregi($pattern,$email)) ? true : false;
  57.  };
  58.  // formulaire envoyé, on récupère tous les champs.
  59.  $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
  60.  $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
  61.  $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
  62.  $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
  63.  // On va vérifier les variables et l'email ...
  64.  $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
  65.  if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
  66.  {
  67.   // les 4 variables sont remplies, on génère puis envoie le mail
  68.   $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
  69.   // envoyer une copie au visiteur ?
  70.   if ($copie == 'oui')
  71.   {
  72.    $cible = $destinataire.','.$email;
  73.   }
  74.   else
  75.   {
  76.    $cible = $destinataire;
  77.   };
  78.   // Remplacement de certains caractères spéciaux
  79.   $message = str_replace("&#039;","'",$message);
  80.   $message = str_replace("&#8217;","'",$message);
  81.   $message = str_replace("&quot;",'"'",$message);
  82.   $message = str_replace('<br>','',$message);
  83.   $message = str_replace('<br />','',$message);
  84.   $message = str_replace("&lt;","<",$message);
  85.   $message = str_replace("&gt;",">",$message);
  86.   $message = str_replace("&amp;","&",$message);
  87.   // envoi du mail
  88.   if (($cible, $objet, $message, $headers))
  89.   {
  90.    echo '<p>'.$message_envoye.'</p>'."\n";
  91.   }
  92.   else
  93.   {
  94.    echo '<p>'.$message_non_envoye.'</p>'."\n";
  95.   };
  96.  }
  97.  else
  98.  {
  99.   // une des 3 variables (ou plus) est vide ...
  100.   echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
  101.  };
  102. }; // fin du if (!isset($_POST['envoi']))
  103. ?>


 
et voici pour le contact.htm
 

Code :
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6. <form id="contact" method="post" action="http://......be/traitement_formulaire.php">
  7. <fieldset><legend>Vos coordonnées</legend>
  8.  <p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
  9.  <p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
  10. </fieldset>
  11. <fieldset><legend>Votre message :</legend>
  12.  <p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
  13.  <p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
  14. </fieldset>
  15. <div style="text-align:center;"> <input type="submit" name="envoi" value="Envoyer le formulaire !"/></div>
  16. </form>
  17. </body>
  18. </html>


 
Et voicl 'erreur:
 

Code :
  1. Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 <monadresse@hotmail.com>... we do not relay <monadresse@hotmail.com> in D:\www\.....be\.....\traitement_formulaire.php on line 101
  2. L'envoi du mail a échoué, veuillez réessayer SVP.


 ou alors, il me met impssible d'afficher la page.
je ne comprend rien du tout.
 
Pouvez-vous m'aider à régler se petit probleme svp.
Merci


Message édité par basaba le 26-01-2008 à 02:24:24

---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
Reply

Marsh Posté le 26-01-2008 à 01:02:46   

Reply

Marsh Posté le 26-01-2008 à 01:32:04    

Reply

Marsh Posté le 26-01-2008 à 02:23:56    

Pouvez-vous m'aider svp ?


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
Reply

Marsh Posté le 26-01-2008 à 03:46:21    

Salut,
 
Pour ton problème (ton 1er post), je suppose que tu teste ton code en local, et donc que PHP ne connais d'adresse de serveur SMTP configuré correctement... Il faut modifier la configuration dans php.ini. Plus précisément, regarde du côté de SMTP, section main function. Essaie d'utiliser l'adresse smtp de ton provider ou smtp1.sympatico.ca à la place de localhost. Tu peux également spécifier sendmail_from, dans la même section. Si rien ne fonctionne, j'ai entrevu quelques commentaires intéressants sur http://ch2.php.net/mail.


Message édité par Seyev le 26-01-2008 à 03:47:08
Reply

Marsh Posté le 26-01-2008 à 11:02:38    

bonjour,  
 
je ne teste pas mon code en local.
je l'upload sur mon ftp de mon hebergeur, et je tape l'adresse pour y parvenir.


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
Reply

Marsh Posté le 26-01-2008 à 12:17:12    

Et moi qui parle un anglais approximatif je comprends clairement que ton hébergeur ne veut pas envoyer de mail vers hotmail et il te le dit :spamafote:
 
Donc faut voir quel est ton hébergeur, quel est ton type d'hébergement (mutualisé, dédié) et trouver une autre solution pour le smtp ;)

Reply

Marsh Posté le 26-01-2008 à 12:39:48    

c'est spécial, parce que mon hebergeur accepte les fontion mail en php.
Je n'y comprend pas grand grand chose.
Pourquoi ne voudrait-il pas envoyer mon mail alors que l'hebergeur peut le faire?


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
Reply

Marsh Posté le 26-01-2008 à 12:50:19    

PArce que pour envoyer un mail on passe par un serveur smtp qui se charge de ça. Si le serveur smtp est configuré pour ne pas envoyer vers certains domaines pour ne pas servir de relais de spam, ton script marche (mais ne gère visiblement pas l'erreur) mais ne peut envoyer le mail puisque le serveur stmp le refuse (c'est comme ça y'a rien à y faire :spamafote: )
 
Faut trouver un serveur smtp qui accepte de relayer un mail vers hotmail et qui accepte surtout de te le laisser faire ;)

Reply

Marsh Posté le 26-01-2008 à 13:02:43    

j'ai fait le teste avec mon adresse @skynet.be
et ca ne marche pas non plus.
pour le serveur smtp, je dois demander a mon hebergeur pour le configurer?


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
Reply

Marsh Posté le 26-01-2008 à 13:31:23    

ben déjà, quel est ton hébergeur ?
:)


---------------
http://www.ypikay.com
Reply

Marsh Posté le 26-01-2008 à 13:31:23   

Reply

Marsh Posté le 26-01-2008 à 14:05:41    

mon hebergeur est :
http://www.bucoweb.be
Un hebergeur belge. et oui, je suis belge.


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
Reply

Marsh Posté le 26-01-2008 à 23:35:05    

Reply

Marsh Posté le 27-01-2008 à 00:50:44    

Si tu tentes depuis le serveur qu'avec plusieurs adresses ça ne fonctionne pas (vérifies en encore une ou deux) appelles les c'est un numéro en france non surtaxé :spamafote:
 
Sinon je commence à me demander si y'aurais pas un soucis de formation de l'entête :??: Puisqu'en fait la réponse 550 correspond à une BAL inconnue.
 
Essayes aussi avant d'appeler d'envoyer un truc tout bête juste avec mail() sans entête.
 
ET au passage que j'ai regardé le code vite fait, je pense que tu t'y prends mal question logique de codage. Si tu utilises une fonction alors tu peux pas vraiment de permettre de récupérer des valeurs venant de l'extérieur comme ça ($_POST)...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed