formulaire php: mail ok mais vide

formulaire php: mail ok mais vide - PHP - Programmation

Marsh Posté le 24-09-2012 à 21:38:16    

Bonjour,
 
voilà, j'espère que vous pourrez m'aider car j'ai un problème avec mon formulaire. Comme je suis un newbie, désolé si les infos fournies ne sont pas suffisante que pour analyser le problème... En fait, la page de remerciement s'affiche lorsque je clique sur le bouton valider, je reçois bien le mail, mails les données indiquées dans le champs du formulaire n'apparaissent pas dans le mail reçu.
 
voici le script:  
 
page contact.php:
 
 
   <div class="header-breadcrumbs">
        <ul>
             <li><a href="index.htm">Home</a></li>
          <li><a href="contact.htm">Contact</a></li>
        </ul>
 
        <!-- Search form -->                  
        <div class="searchform">
          <form action="#" method="get" class="form">
            <fieldset>
              <input value=" Search..." name="field" class="field" />
              <input type="submit" value="GO!" name="button" class="button" />
            </fieldset>
          </form>
        </div>
      </div>
    </div>
 
 
<?php
$TO = "info@xxx.xxx";
 
$h  = "From: " . $TO;
 
$message = "";
 
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
 
mail($TO, $subject, $message, $h);
 
Header("Location: http://xxx.xxx/merci" );
 
?>
 
 
<form method="POST" action="formmail.php" >
<input type="hidden" name="subject" value="formmail">
 
<table width="360">
<tr><td width="115">Votre Nom:</td>
    <td width="233"><input type="text" name="realname" size="30" /></td>
</tr>
<tr><td>Votre Email:</td>
    <td><input type="text" name="email" size="30"></td></tr>
    <tr><td>Votre tél:</td>
    <td><input type="text" name="tel" size="30"></td></tr>
<tr><td>Sujet:</td>
    <td><input type="text" name="title" size="30"></td></tr>
<tr><td colspan="2">Commentaires:<br>
  <textarea COLS="50" ROWS="6" name="comments"></textarea>
</td></tr>
</table>
<br> <input type="submit" value="Envoyer"> -
     <input type="reset" value="Annuler">
</form>
  <div align="center"></div>
  <div align="center"></div>
   </form>
 
 
  <div align="center"></div>
  <div align="center"></div>
    </form>
 
 
Page form.php:
 
 
<?php
$TO = "xxx.xxx";
 
$h  = "From: " . $TO;
 
$message = "";
 
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}
 
mail($TO, $subject, $message, $h);
 
Header("Location: http://www.xxx.xxx/merci" );
 
?>
 
 
 
 <div class="header-breadcrumbs">
        <ul>
             <li><a href="index.htm">Home</a></li>
          <li><a href="contact.htm">Contact</a></li>
        </ul>
 
        <!-- Search form -->                  
        <div class="searchform">
          <form action="#" method="get" class="form">
            <fieldset>
              <input value=" Search..." name="field" class="field" />
 
              <input type="submit" value="GO!" name="button" class="button" />
            </fieldset>
          </form>
        </div>
      </div>
    </div>
 
 
 
 <div class="main-content">
         
        <!-- Pagetitle -->
        <h1 class="pagetitle">CONTACT</h1>
 
        <!-- Content unit - One column -->
        <div class="column1-unit">
           
        </div>          
        <h1 class="block">Merci de nous avoir contact&eacute; </h1>
        <div class="column1-unit">
          <div class="contactform">
    <form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
  <div align="center"></div>
  <div align="center">
    <p>Votre demande &agrave; bien &eacute;t&eacute; envoy&eacute;e.</p>
    <p>Nous ferons le n&eacute;cessaire pour la traiter dans les plus brefs d&eacute;lais.  </p>
    </div>
    </form>
 
 
          </div>
 
 
 
Merci pour votre aide

Reply

Marsh Posté le 24-09-2012 à 21:38:16   

Reply

Marsh Posté le 28-09-2012 à 14:34:22    

Essaye d'utiliser $_POST à la place de $HTTP_POST_VARS

Reply

Marsh Posté le 30-09-2012 à 19:32:34    

Il y a bcp de choses à revoir.
 
Déjà, ta page de contact contient ça : <form method="POST" action="formmail.php" >  
 
Ta page d'envoi s'appelle form.php.....  :??:  
 
Dans contact.php, tu nous mets ceci :  
 

Code :
  1. <?php
  2. $TO = "info@xxx.xxx";
  3. $h  = "From: " . $TO;
  4. $message = "";
  5. while (list($key, $val) = each($HTTP_POST_VARS)) {
  6.   $message .= "$key : $val\n";
  7. }
  8. mail($TO, $subject, $message, $h);
  9. Header("Location: http://xxx.xxx/merci" );
  10. ?>


 
Quel intérêt ? Ce code est déjà dans form.php. Là, tu envoies dès chargement de la page un mail sans contenu, donc probablement la cause.
Avant d'utiliser un code comme ça, il faut que tu mettes des conditions. Dans le cas présent, il faudrait que tu vérifies que la globale $_POST n'est pas vide pour que ce code ne soit exécuté qu'après validation du formulaire, et surtout vérifier que tes champs nécessaires sont bien remplis.


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

Marsh Posté le 30-09-2012 à 21:56:20    

Voilà, j'ai supprimé le code redondant à la page contact. (il s'agit d'une page contact.htm et non contact.php).
 
concernant formmail.php, il s'agit d'une erreur plus haut, le fichier form.php n'existe pas.
 
Ces modifs ne résolvent pas le problème. Le mail est toujours reçu, mais aussi toujours vide.  
 
J'ai également tenté de remplacer $_POST à la place de $HTTP_POST_VARS mais dans ce cas, lorsque je clique sur envoyer, il s'affiche une page blanche à l'écran et aucun mail n'est reçu.
 
Pour éviter les complications, il n'y aurait pas un code à "copier-coller" pour remplacer celui présent?
 
Merci...

Reply

Sujets relatifs:

Leave a Replay

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