Problème de formulaire mail :(

Résolu
L42RY Messages postés 10 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 11 avril 2009 - 29 déc. 2007 à 16:27
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 4 janv. 2008 à 16:49
Bonjour à tous !

Tout d'abord, merci d'avoir pris le temps de cliquer sur mon post. J'ai créé ce dernier car j'ai un petit problème avec un formulaire mail dont j'ai trouvé le code source sur le net : tout fonctionne avec ce dernier, mais lorsque l'internaute désirant m'envoyer un message ne remplit pas un champ, au lieu d'un message du type "il manque votre prénom", comme prévu par le formulaire, apparait un 0. Ceci m'embête d'autant plus que le site que je dois concevoir n'est pas pour moi. Je voudrais donc savoir si il serait possible que vous m'indiquiez ou se trouve le problème, étant donné que je ne connais pas encore le php :s
Voici le code :
<?php<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

if($_POST){

            //Récupération des données du formulaire----------------------------

            $prenom = $_POST["prenom"];

            $nom = $_POST["nom"];

            $email = $_POST["email"];

            $tel = $_POST["tel"];

            $message = $_POST["message"];

            $subject = $_POST["subject"];

            //------------------------------------------------------------------

           

            //Gestion des erreurs de saisie-------------------------------------

            $erreurs = array();

            if( empty($prenom)) $erreurs = "il manque votre prénom";

            if( empty($nom)) $erreurs = "il manque votre nom";

            if( empty($email)) $erreurs = "il manque votre email";

            if( empty($tel)) $erreurs = "il manque votre téléphone";

            if( empty($message)) $erreurs = "il manque votre message";

            //------------------------------------------------------------------

           

            if(empty($erreurs)) {

                        $from = $email;

                        $reply = $from;

                        $to = [mailto:larry.caer@orange.fr larry.caer@orange.fr]; //Mettez l'email de destination ici

                       

                        //Mise en forme du contenu au format HTML-----------------------

                        $contenu = "message de : ".$prenom." ".$nom;

                        $contenu .= "
Tel: ".$tel;

                        $contenu .=      "
Message:
";

                        $contenu .= $message;

                        //--------------------------------------------------------------

                       

                        //Entêtes de formatage de l'email en mode HTML------------------

                        $headers = 'MIME-Version: 1.0' . "\n";

                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";

                        $headers .= 'From: '.$from."\n";

                        $reply = $headers."Reply-to: ".$reply."\n";

                        //---------------------------------------------------------------

                       

                        //Déclenchement de l'email et reroutage vers une autre page-----

                        $resultat = mail($to, $subject, $contenu, $reply);

                       

                        if($resultat) {

                                   echo "email envoyé";

                        } else {

                                   echo "Echec dans l'envoi de l'email";

                        }

                       

            } else {

                        $texte_erreur = implode("
",$erreurs);

                        print $texte-erreur;

            }

 

}

 

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Envoi d'email</title>

</head>

 

<form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">

 

    ----

      Pr&eacute;nom :,

      " size="50" maxlength="100" />,

   

    ----

      Nom :,

      " size="50" maxlength="100" />,

   

    ----

      T&eacute;l&eacute;phone :,

      " size="50" maxlength="50" />,

   

    ----

      Votre email  :,

      " size="50" maxlength="100" />,

   

    ----

      Sujet du message :,

      " size="50" maxlength="100" />,

   

    ----

      Texte du message  :,

      <textarea name="message" cols="38" rows="10" id="message"><?php print $message; ?></textarea>,

   

    ----

                    ,

   

 

</form>

</html>

Merci beaucoup d'avance pour vos réponses, passez une bonne après-midi ;)

9 réponses

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 janv. 2008 à 18:08
Tient je l'ai testé sur mon serveur et j'ai modifié la fin, il marche a merveille !!!

<?php


if($_POST){


            //Récupération des données du formulaire----------------------------


            $prenom = $_POST["prenom"];


            $nom = $_POST["nom"];


            $email = $_POST["email"];


            $tel = $_POST["tel"];


            $message = $_POST["message"];


            $subject = $_POST["subject"];


            //------------------------------------------------------------------


           


            //Gestion des erreurs de saisie-------------------------------------


            $erreurs = array();


            if( empty($prenom)) $erreurs = "il manque votre prénom";


            if( empty($nom)) $erreurs = "il manque votre nom";


            if( empty($email)) $erreurs = "il manque votre email";


            if( empty($tel)) $erreurs = "il manque votre téléphone";


            if( empty($message)) $erreurs = "il manque votre message";


            //------------------------------------------------------------------


           


            if(empty($erreurs)) {


                        $from = $email;


                        $reply = $from;


                        $to = "[mailto:larry.caer@orange.fr larry.caer@orange.fr]"; //Mettez l'email de destination ici


                       


                        //Mise en forme du contenu au format HTML-----------------------


                        $contenu = "message de : ".$prenom." ".$nom;


                        $contenu .= "
Tel: ".$tel;


                        $contenu .=      "
Message:
";


                        $contenu .= $message;


                        //--------------------------------------------------------------


                       


                        //Entêtes de formatage de l'email en mode HTML------------------


                        $headers = 'MIME-Version: 1.0' . "\n";


                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";


                        $headers .= 'From: '.$from."\n";


                        $reply = $headers."Reply-to: ".$reply."\n";


                        //---------------------------------------------------------------


                       


                        //Déclenchement de l'email et reroutage vers une autre page-----


                        $resultat = mail($to, $subject, $contenu, $reply);


                       


                        if($resultat) {


                                   echo "email envoyé";


                        } else {


                                   echo "Echec dans l'envoi de l'email";


                        }


                       


            } else {
   print("");
   print($erreurs);
   print("

");
            }


 


}


 


?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">


<head>


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<title>Envoi d'email</title>


</head>


 




<form action="<?php print $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">


      ----

      Pr&eacute;nom :,

      " size="50" maxlength="100" />,

   

    ----

      Nom :,

      " size="50" maxlength="100" />,

   

    ----

      T&eacute;l&eacute;phone :,

      " size="50" maxlength="50" />,

   

    ----

      Votre email  :,

      " size="50" maxlength="100" />,

   

    ----

      Sujet du message :,

      " size="50" maxlength="100" />,

   

    ----

      Texte du message  :,

      <textarea name="message" cols="38" rows="10" id="message"><?php print $message; ?></textarea>,

   

    ----

                   ,

   

 


</form>




</html>






 
3
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
30 déc. 2007 à 10:43
met :            //Gestion des erreurs de saisie-------------------------------------<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

            $erreurs = array();

            if( !isset($prenom)) $erreurs = "il manque votre prénom";

            if( !isset($nom)) $erreurs = "il manque votre nom";

            if( !isset($email)) $erreurs = "il manque votre email";

            if( !isset($tel)) $erreurs = "il manque votre téléphone";

            if( !isset($message)) $erreurs = "il manque votre message";

            //------------------------------------------------------------------

au lieu de :

            //Gestion des erreurs de saisie-------------------------------------

            $erreurs = array();

            if( empty($prenom)) $erreurs = "il manque votre prénom";

            if( empty($nom)) $erreurs = "il manque votre nom";

            if( empty($email)) $erreurs = "il manque votre email";

            if( empty($tel)) $erreurs = "il manque votre téléphone";

            if( empty($message)) $erreurs = "il manque votre message";

            //------------------------------------------------------------------

PS : je ne suis pas sur que cela va marcher !!!
0
L42RY Messages postés 10 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 11 avril 2009
2 janv. 2008 à 15:46
Bonjour nicomilville,

Merci pour ta réponse, désolé pour mon temps de réaction. J'ai testé ta solution, ça ne fonctionne malheureusement pas, cette fois ci tout les champs sont ignorés, c'est à dire que l'on peut envoyer un mail complètement vide, même sans remplir le champ mail. Je suis perduuuu xD
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
2 janv. 2008 à 18:25
au début remplace le :
if($_POST)
par :
if((isset($_POST["prenom"])) && (isset($_POST["nom"])) && (isset($_POST["email"])) && (isset($_POST["tel"])) && (isset($_POST["message"])) && (isset($_POST["subject"])))
Je ne sais pas si ça marche mais tu peut toujours essayer !!!           

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
L42RY Messages postés 10 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 11 avril 2009
3 janv. 2008 à 15:33
Merci beaucoup pour ton aide, je teste ça de suite :)
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
3 janv. 2008 à 16:25
tient moi au courrant stp !!

 
0
L42RY Messages postés 10 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 11 avril 2009
3 janv. 2008 à 17:31
Tkt ! J'ai testé, le mail part bien, mais toujours pas de prise en compte des champs vide. C'est vraiment étrange ! En tout cas, merci bcp quand même
0
L42RY Messages postés 10 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 11 avril 2009
4 janv. 2008 à 16:38
Salut Nicomilville, désolé pour mon temps de réponse, je viens de tester, CA MARCHE !!!!!!!!!!!!!!!!!!!!
C'est vraiment génial tu m'a sauvé la vie !! ;) Merci pour le temps que tu as passé à résoudre ce problème, je ne sais pas comment te remercier !
Merci encore, bonne soirée !!!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
4 janv. 2008 à 16:49
y a pas de quoi !!!

A ++

 
0
Rejoignez-nous