Probleme script envoie formulaire ?

Bonjour,

J'ai télécharger un site pré-conçu mon ma société, mais le formulaire de contact à l'air de ne pas fonctionner....

je vous passe mes codes :

traitement_email.php

<?
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";

$headers .= "From: Infolex <infolex@ymail.com>\n";

$headers .= "Cc: $adresse\n";
$headers .= "Bcc: infolex@ymail.com\n";

$message = "Message de l'internaute :<br> $texte <br> Son nom et prénom : $nom $prenom <br> Son email : $email";

// On envoi l'email
if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
<a href=\"../index.html\"></a>
</div>";
else echo "Un probleme est survenu lors de l'envoir de votre message !";

?>


contact

<table width="610" height="99" border="0" cellpadding="0" cellspacing="0">
                    <tr valign="top">
                      <td width="486" bgcolor="#FFFFFF"><div align="center"><form id="formulaire" name="formulaire" action="../scripts/traitement_email.php" method="post" onSubmit="return verification()">
                  <table width="609">
    			<tr><td height="10"></td></tr>
    			<tr>
    				<td width="200" bgcolor="#D3E3EB"><p class="barretitre">Votre nom : </p></td><td width="397" bgcolor="#D3E3EB"><input name='nom' type='text' class='recherche' size="40"></td>
    			</tr>
    				<tr><td><p class="barretitre">Votre pr&eacute;nom : </p></td><td><input name='prenom' type='text' class='recherche' size="40"></td></tr>
    				<tr><td bgcolor="#D3E3EB"><p class="barretitre">Votre email :</p></td><td bgcolor="#D3E3EB"><input name='email' type='text' class='recherche'></td>
    				</tr>
    				<tr><td><p class="barretitre">Motif de <br />
    				  votre message :</p></td><td><p class="barretitre">
    				      <input name='sujet' type='radio' class="recherche" value='renseignements'>
    				Renseignements<br />
    				<input name='sujet' type='radio' class="recherche" value='bugs sur le site'>
    				Bugs sur le site<br />
    				<input name='sujet' type='radio' class="recherche" value='partenariat et publicité'>
    				Partenariat / publicit&eacute;<br />
    				<input name='sujet' type='radio' class="recherche" value='autres'>
    				Autres ...</p></td></tr>
    				<tr><td bgcolor="#D3E3EB"><p class="barretitre">Votre message :</p></td><td bgcolor="#D3E3EB"><textarea name='texte' cols='35' rows='10' class='recherche'></textarea></td>
    				</tr>
    				<tr><td height="50">&nbsp;</td><td bgcolor="#486778">
    
    
    				  <div align="center"><a class="barretitre" onclick="javascript:if (verification()) {formulaire.submit();}" href="javascript:void(0);">ENVOYER</a><br />
  				    </div></td>
    			</tr>
    		</table>
    
    		</form></div></td>
                    </tr>
                  </table>


Quelque chose ne va pas ou c'est la fatigue qui me prend ?

Merci d'avance !
Configuration: Windows
Firefox 3.5.2

39 réponses

Résumé de la discussion

Le formulaire de contact d’un site préconçu ne transmet pas correctement les messages, avec des soucis autour du script traitement_email.php, de l’envoi via mail() et d’une éventuelle validation JavaScript. En pratique, les échanges ont insisté sur la nécessité d’un retour true/false dans la fonction de vérification JavaScript et sur la vérification de l’adresse destinataire côté PHP pour éviter les envois invalides. D'autres interactions évoquent l'erreur SMTP 550 A valid address is required et recommandent de corriger l'adresse du destinataire (ou d’ajuster le code d'envoi) pour que mail() renvoie true. En complément, certains conseils suggèrent d'intégrer des tests côté serveur et de vérifier que le formulaire et le script de traitement correspondent bien au chemin et au nom des champs.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour :)

    Déjà, es tu sur que $sujet, $adresse et $texte contiennent bien des infos ??

    De plus, gaffe à ton if.. else tu n as pas mis de {}.. ca peut etre source de soucis , et pourquoi utiliser \" au lieu de ' ???:

    if ( mail($destinataire, $sujet, $message, $headers) ){
    echo "<div align='center'>
    <a href='../index.htm'><img src='../themes/default/images/button_backtosite.png' border='0'></a>
    </div>";
    }else{
    echo "Un probleme est survenu lors de l'envoie de votre message !";}

    Pour info, sur mon site , il y a un script d envoie de mail qui marche parfaitement :

    http://jjsteing.u7n.org/index.php?id=21 => Formulaire_envoie_mail.php si tu clique sur le lien ca t affiche les données du formulaire, et sur la droite, tu as un lien pour afficher les codes sources ;)
    1. Bonjour

      Je viens ici car je suis dans le même problème que notre ami infolex.

      J'ai aussi crée un site avec un kit graphique mais malheureusement je n'arrive pas a faire fonctionner le scripts contact.

      J'ai pas vraiment compris l'explication que vous avez donné en rajoutant destinataire

      voici le code scipts que j'ai pouvez vous me dire se qui ne joue pas

      <?
      $headers = "MIME-Version: 1.0\n";
      $headers .= "Content-type: text/html; charset=iso-8859-1\n";

      $headers .= "From: BlueHome <mike_sevetse@msn.com>\n";

      $headers .= "Cc: $adresse\n";
      $headers .= "Bcc: mike_sevetse@msn.com\n";

      $message = "Message de l'internaute :<br> $texte <br> Son nom et prénom : $nom $prenom <br> Son email : $email";

      // On envoi l'email
      if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
      <a href=\"../index.htm\"><img src=\"../themes/default/images/button_backtosite.png\" border=\"0\"></a>
      </div>";
      else echo "Un probleme est survenu lors de l'envoir de votre message !";

      ?>
      1. Ok, mais se sera trop compliqué je pense... pour le moment tant pis !

        Merci quand même pour votre patience et certainement à très bientôt ;)

        Merci encore une fois pour tout !!!
        1. Pour le formulaire, le seul champ obligatoire apparemment est le sujet... d'après les tests que je viens d'effectuer. Peut être que les messages arriveront plus tard.
          Dans ce cas, comment faire pour qu'une fenêtre (comme celle du "merci pour votre message, vous allez etre redirige vers la page d'accueil) s'affiche avec un autre message du genre "message non envoye. merci de préciser le sujet" ?

          Merci en ce qui concerne le "u" oublié :)

          et pour la sécurité je n'ai pas bien saisis ce dont vous voulez me dire :s

          Merci beaucoup

          PS : si pour le formulaire c'est trop compliqué tant pis ! en attendant je ferais avec.

          merci
          1. il faut tester les valeurs des champs avant d'envoyer le message.
        2. L'url de mon site est : http://infolex.fr
          1. je peux cliquer sur contact sans rien mettre.
            message envoyé ?

            dans les services - cours - il manque un u à bureautique.

            quelle sécurité à rechercher ?
        3. je ne suis pas allé sur le site. j'ai testé en copiant les scripts déposés sur ccm.
          je n'ai pas vu l'URL du site
          1. Ca fonctionne apparament :)

            Merci énormément giheller !!!

            Et sinon une dernière question sans rapport avec le sujet, que pensez-vous de mon site pour ma société ?

            Merci et à bientôt !!!
            1. à la ligne 14 on envoit le mail avec $destinataire
              si destinataire n'est pas renseigné il est évident que cela ne peut aller.
              un peu de logique non ?
              1. Pourquoi on me dit "on line 14"

                la ligne 14 est :

                if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
                


                Merci
                1. J'ai ce message d'erreur :

                  Warning: mail() [function.mail]: SMTP server response: 550 A valid address is required. in D:\www\infolex.fr\htdocs\scripts\traitement_email.php on line 14
                  Un probleme est survenu lors de l'envoir de votre message !

                  j'ai fais comme vous avez dit :

                  <?
                  $headers = "MIME-Version: 1.0\n";
                  $headers .= "Content-type: text/html; charset=iso-8859-1\n";
                  
                  $headers .= "From: Infolex <infolex@ymail.com>\n";
                  
                  $headers .= "Cc: $adresse\n";
                  $headers .= "Bcc: infolex@ymail.com\n";
                  
                  $message = "Message de l'internaute :<br> $texte <br> Son nom et prénom : $nom $prenom <br> Son email : $email";
                  $destinataire = "infolex@ymail.com";
                  
                  // On envoi l'email
                  if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
                  <a href=\"../index.html\"></a>
                  </div>";
                  else echo "Un probleme est survenu lors de l'envoir de votre message !";
                  
                  ?> 
                  1. <?
                    $headers = "MIME-Version: 1.0\n";
                    $headers .= "Content-type: text/html; charset=iso-8859-1\n";

                    $headers .= "From: Infolex <infolex@ymail.com>\n";

                    $headers .= "Cc: $adresse\n";
                    $headers .= "Bcc: infolex@ymail.com\n";

                    $message = "Message de l'internaute :<br> $texte <br> Son nom et prénom : $nom $prenom <br> Son email : $email";
                    ICI$destinataire = "info.......";

                    // On envoi l'email
                    if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
                    <a href=\"../index.html\"></a>
                    </div>";
                    else echo "Un probleme est survenu lors de l'envoir de votre message !";

                    ?>
                    1. et comment je fais ca ? et dans quel script ?

                      Je suis totalement perdu :(

                      merci..
                      1. attention
                        il faut aussi écrire des choses réelles dans le javascript.
                        après vérifications on doit faire return true; si aucune erreur n'a été trouvée sinon return false; pour ne pas faire de submit avec des valeurs erronées.
                        1. Oui j'utilise dreamweaver, mais le site je l'ai téléchargé et changer à ma façon (enfin que le texte).
                          1. // On envoi l'email
                            if ( mail($destinataire, $sujet, $message, $headers) )


                            Le champs destinataire est vide ok, c'est bien ça le problème ? donc pour ajouter mon adresse je fais comment ? si c'est bien ca :s

                            Merci encore pour ta patience !
                            1. $destinataire= "ton adresse@xx.fr";
                              à placer avant le if (mail ...

                            2. @gihellerVoila le message d'erreur :

                              Warning: mail() [function.mail]: SMTP server response: 550 A valid address is required. in D:\www\infolex.fr\htdocs\scripts\traitement_email.php on line 13
                              Un probleme est survenu lors de l'envoir de votre message !

                              et voila mon script :

                              <?
                              $headers = "MIME-Version: 1.0\n";
                              $headers .= "Content-type: text/html; charset=iso-8859-1\n";
                              
                              $headers .= "From: infolex <contact@infolex.fr>\n";
                              
                              $headers .= "Cc: $adresse\n";
                              $headers .= "Bcc: contact@infolex.fr\n";
                              
                              $message = "Message de l'internaute :<br> $texte <br> Son nom et prénom : $nom $prenom <br> Son email : $email";
                              
                              // On envoi l'email
                              $destinataire= "contact@infolex.fr"; if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
                              <a href=\"../index.html\"></a>
                              </div>";
                              else echo "Un probleme est survenu lors de l'envoir de votre message !";
                              
                              ?>


                              Pourquoi ca ne fonctionne toujours pas ??

                              Merci
                          2. que contient la variable $destinataire ?
                            c'est à cette adresse que le message est envoyé.
                            1. Pourtant mon adresse mail est bien infolex@ymail.com (ou bien contact@infolex.fr mais il y a une redirection ymail)

                              Voici mon code :

                              <?
                              $headers = "MIME-Version: 1.0\n";
                              $headers .= "Content-type: text/html; charset=iso-8859-1\n";
                              
                              $headers .= "From: Infolex <infolex@ymail.com>\n";
                              
                              $headers .= "Cc: $adresse\n";
                              $headers .= "Bcc: infolex@ymail.com\n";
                              
                              $message = "Message de l'internaute :<br> $texte <br> Son nom et prénom : $nom $prenom <br> Son email : $email";
                              
                              // On envoi l'email
                              if ( mail($destinataire, $sujet, $message, $headers) ) echo "<div align=\"center\">
                              <a href=\"../index.html\"></a>
                              </div>";
                              else echo "Un probleme est survenu lors de l'envoir de votre message !";
                              
                              ?>
                              1. avez-vous lu le message d'erreur : il vous dit que l'adresse mail est invalide
                                1. Désolé je n'avais pas vu :s

                                  Alors en ajoutant le script que vous m'avais donné, voici le message d'erreur que je reçois une fois le mail envoyé :

                                  Warning: mail() [function.mail]: SMTP server response: 550 A valid address is required. in D:\www\infolex.fr\htdocs\scripts\traitement_email.php on line 13
                                  Un probleme est survenu lors de l'envoir de votre message !

                                  Et je n'ai donc reçu aucun e-mail... Faut-il modifier quelque chose dans le traitement_email.php maintenant ?

                                  Merci !
                                  • 1
                                  • 2