Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1452 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme de formulaire. adiez moi svp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de formulaire. adiez moi svp

n°1677029
basaba
modder
Posté le 26-01-2008 à 01:02:46  profilanswer
 

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
mood
Publicité
Posté le 26-01-2008 à 01:02:46  profilanswer
 

n°1677033
basaba
modder
Posté le 26-01-2008 à 01:32:04  profilanswer
 
n°1677035
basaba
modder
Posté le 26-01-2008 à 02:23:56  profilanswer
 

Pouvez-vous m'aider svp ?


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
n°1677036
Seyev
Let's fork();
Posté le 26-01-2008 à 03:46:21  profilanswer
 

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
n°1677056
basaba
modder
Posté le 26-01-2008 à 11:02:38  profilanswer
 

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
n°1677075
leflos5
On est ou on est pas :)
Posté le 26-01-2008 à 12:17:12  profilanswer
 

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

n°1677083
basaba
modder
Posté le 26-01-2008 à 12:39:48  profilanswer
 

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
n°1677088
leflos5
On est ou on est pas :)
Posté le 26-01-2008 à 12:50:19  profilanswer
 

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

n°1677093
basaba
modder
Posté le 26-01-2008 à 13:02:43  profilanswer
 

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
n°1677100
erwan83
Du Shift DEL tu te méfieras !
Posté le 26-01-2008 à 13:31:23  profilanswer
 

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


---------------
http://www.ypikay.com
mood
Publicité
Posté le 26-01-2008 à 13:31:23  profilanswer
 

n°1677113
basaba
modder
Posté le 26-01-2008 à 14:05:41  profilanswer
 

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


---------------
http://forum.hardware.fr/hardwaref [...] 5483-1.htm
n°1677283
basaba
modder
Posté le 26-01-2008 à 23:35:05  profilanswer
 
n°1677286
leflos5
On est ou on est pas :)
Posté le 27-01-2008 à 00:50:44  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme de formulaire. adiez moi svp

 

Sujets relatifs
Debutant en C : petit problème^^Problème pour adapter la taille d'une image à la cellule d'un tableau
[RESOLU]Probleme avec Formulaire et BD MySQLprobleme de malloc ou de scanf ?
[PHP] Problème avec exec() dont ret_val = -1Problème validation W3C: "there is no attribute "style""
[Script Shell] Problème pour exécuter des commandes[FPDF] Probléme affichage PDF sous IE
Player mp3 en flash problème help ! 
Plus de sujets relatifs à : probleme de formulaire. adiez moi svp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR