Probleme avec formulaire de contact

Probleme avec formulaire de contact - PHP - Programmation

Marsh Posté le 15-07-2009 à 16:13:50    

Bonjour,
j'ai un petit problème, j'essaye d'intégrer un formulaire de contact dans mon site (en html) mais il ne fonctionne pas, il ne m'envoie pas d'émail et ne me donne pas de message d'erreur.
Voici le code :
page HTML:
 

Code :
  1. <div class="col-3">
  2.  <h2>formulaire de contact</h2>
  3.   <form id="ContactForm" action="contact.php" method='post' >
  4.    <div class="rowi">
  5.     <span class="key">Votre Nom</span>
  6.            <input type="text" class="input" name="your_name" />
  7.            </div>
  8.     <div class="rowi">
  9.     <span class="key">Votre e-mail</span>
  10.      <input type="text" class="input" name="your_email"/>
  11.     </div>
  12.     <div class="rowi">
  13.             <span class="key">Votre message</span>
  14.      <textarea name="your_message" cols="1" rows="1"></textarea><br />
  15.      <a href="#" onclick="document.getElementById('ContactForm').submit()" class="link">Envoyer</a><a href="#" onclick="document.getElementById('ContactForm').reset()" class="link">Effacer</a><div class="clear">
  16.                                  </div>
  17.     </div>
  18.   </form>
  19.  </div>


 
 
 
et voici ma page contact.php :
 

Code :
  1. <?php
  2.     $your_name = $_POST['your_name'];
  3.     $your_email = $_POST['your_email'];
  4.     $your_message = $_POST['your_message'];
  5.  
  6.  
  7. $recipient = "xxx@gmail.com";
  8. $subject = "formulaire de contact";
  9.  
  10.     $headers .= 'Content-type: text/html; charset=iso-8859-1';
  11.  
  12.     $content = "<html><head><title>Contact letter</title></head><body><br>";
  13.     $content .= "Name: <b>" . $your_name . "</b><br>";
  14.     $content .= "E-mail: <b>" . $your_email . "</b><br><hr><br>";
  15.     $content .= $your_message;
  16.     $content .= "<br></body></html>";
  17.     mail($recipient,$subject,$content,$headers);
  18. ?>
  19. <html>
  20.     <body bgcolor="#282E2C">
  21.         <div align="center" style="margin-top:60px;color:#FFFFFF;font-size:11px;font-family:Tahoma;font-weight:bold">
  22.             <p>Votre message a été envoyé. merci. </p>
  23.             <p><a href="javascript:window.history.go(-1)">Retour</a></p>
  24.         </div>
  25.     </body>
  26. </html>


 
 
 
merci beaucoup pour votre aide


Message édité par joystar le 15-07-2009 à 16:50:11
Reply

Marsh Posté le 15-07-2009 à 16:13:50   

Reply

Marsh Posté le 15-07-2009 à 23:30:54    

hello,
bon, sans aborder le coté "sécurité", vois ce que tu récupères ...
dans ta page contact.php, place ce code tout en haut après <?php :

Code :
  1. echo '<p>Je récupère : </p>';
  2. echo '<pre>';
  3. print_r($_POST);
  4. echo '</pre>';
  5. exit();


 
ça va empêcher la page de s'exécuter, mais ça te donnera tout le contenu qui est récupéré par le formulaire.
 
2 cas se produisent :
 
1. le contenu est vide ou les clés ne sont pas les bonnes, auquel cas ton formulaire a un souci ;
 
2. le contenu (nom des clés et valeur) est bon, auquel cas c'est la composition de ton mail qui pose souci.
 
au passage, tu fais un $headers .= or ta variable n'est pas initialisée. Même si PHP est (trop) permissif, c'est pas top.
 
Enfin, si 1. et 2. sont OK, alors c'est le mail en tant que tel qui bloque. Vois si tu as bien un MTA sur ton serveur, ou si tu utilises un package Apache (WAMP, XAMPP ...) regarde la valeur dans php.ini du SMTP ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 16-07-2009 à 01:31:07    

salut,
 
merci de ta réponse.
 
Alors, il me donne bien les bonnes valeurs donc ça doit être un problème du cote serveur, donc je vais devoir contacter mon hébergeur et me renseigner.

Reply

Marsh Posté le 16-07-2009 à 14:38:05    

Teste déjà la fonction mail() avec le premier script de la page http://forum.aideinfo.com/download [...] rum23.html
 
Etant donné qu'il n'y a aucune vérification, même si les données du formulaire n'étaient pas récupérées, tu recevrais tout de même un e-mail, vide. LE problème ne peut venir que de là, ou le script ne passe pas par le code d'envoi (pour t'en assurer, tu peux mettre un echo après).


Message édité par aideinfo le 11-08-2009 à 13:31:52

---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 16-07-2009 à 16:41:46    

il me donne ça comme réponse : "L'envoi par la fonction PHP mail() ne fonctionne pas ou est désactivée !".
Donc c'est bien ça le problème , se que me confirme mon hébergeur :

Citation :


Il doit utiliser une fonction du style http://files.codes-sources.com/fic [...] s.SMTP.php
 
Qui utilise mon serveur SMTP directement du script PHP sans utiliser la fonction sendmail du serveur.


 
Donc maintenant, il ne me reste plus qu'a me renseigner sur le fonction smtp_mail, et refaire ma page php.

Reply

Marsh Posté le 10-08-2009 à 15:30:33    

rebonjour  :)  
 
J'ai encore besoin de votre aide, je suis donc passe a une fonction smtp_mail :
 
contact.php :
 

Code :
  1. include('./Class.SMTP.php');
  2. $smtp = new SMTP(smtp.voxistech.com);
  3. $smtp->smtp_mail('$recipient','$subject','$content');


 
 

Code :
  1. // Connection au serveur SMTP
  2.      $this->smtp_connection = fsockopen($this->serveur, // Serveur
  3.      $this->port, // Port de connection
  4.      $num_erreur, // Numéros de l' erreur
  5.      $msg_erreur, // Message d' erreur
  6.      $this->time_out); // Durée de la connection en secs   <------------------------------------- ligne 111
  7.      if(!$this->smtp_connection){// Vérification de la connection
  8.      $this->erreur = 'Impossible de se connecter au serveur SMTP !!!<br />'."\r\n"
  9.      .'Numéro de l&#39; erreur: '.$num_erreur.'<br />'."\r\n"
  10.      .'Message renvoyé: '.$msg_erreur.'<br />'."\r\n";
  11.      return false;
  12.      }


 
il me renvoie cette erreur :
 
Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/mc6413/htdocs/Class.SMTP.php on line 111
 
Warning: fsockopen() [function.fsockopen]: unable to connect to smtpvoxistechcom:25 (Unknown error) in /home/mc6413/htdocs/Class.SMTP.php on line 111
 
 
est-ce que quelqu'un peut m'aider ?
 
Merci

Reply

Marsh Posté le 11-08-2009 à 13:30:58    

Tas un script permettant de tester la connexion à un serveur SMTP sur http://forum.aideinfo.com/download [...] rum23.html . Sur quel hébergeur es-tu ?


Message édité par aideinfo le 11-08-2009 à 13:32:15

---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 11-08-2009 à 19:02:10    

salut,
 
bon, c'est peut-être un problème du cote de mon hébergeur le script ne fonctionne pas avec "smtp.voxistech.com", il reste bloque sur le chargement après avoir clique sur tester, et pas moyen de le pinger aussi.

Reply

Marsh Posté le 13-08-2009 à 14:38:02    

oui la plupart des hébergeurs désactivent cette fonction pour éviter de servir de relai au mailing de spam.
 
autre remarque : autant éviter le javascript !
 

Citation :

<a href="#" onclick="document.getElementById('ContactForm').submit()" class="link">Envoyer</a>


 
il peut être désactivé par l'utilisateur et rendre ta page inefficace alors que son utilisation n'est pas obligatoire dans l'envoi d'un formulaire.


---------------
Meilleur Écran
Reply

Sujets relatifs:

Leave a Replay

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