Script PHP formulaire mail

Bonjour @ tous !

J'ai mis en place un formulaire qui utilise un script PHP pour l'envoi mail.

Seulement, pour le texte inséré dans chaque input n'est pas envoyé par mail. Il n'y a que la "présentation" du mail décrite dans le script qui est correctement envoyé...

Mon formulaire :

-------------------------------------------------------------------------------------------------------------------------------------------------------------

<form action="../cgi-bin/mail.php" METHOD="POST" enctype="text/plain" class="formulaire" onSubmit="return verification()"><br>

<h4> Nom :
<input name="Nom " type="text" maxlength="25" size="25">
</h4>
<h4>Prénom :
<input name="Prenom " type="text" maxlength="25" size="25">
</h4>
<h4>Téléphone :
<input name="Telephone " type="text" maxlength="25" size="25"></h4>

<h4>E-mail :
<input name="Mail " type="text" maxlength="25" size="25"></h4>

<h4> Nombre de personnes :
<input name="Nombre de personnes " type="text" maxlength="25" size="25">
</h4>
<h4>Nombre de chambres :
<input name="Nombre de chambres " type="text" maxlength="25" size="25"></h4>
<h4><u>Dates de réservation</u><br>
Du :
<input name="Date arrivee " type="text" maxlength="25" size="25">
</h4>
<h4>Au : <input name="Date de fin " type="text" maxlength="25" size="25"></h4>
<h4><br>
Commentaires :
<textarea name="Commentaires " cols="50" rows="5"></textarea>
</h4>
<center><input type="Submit" value="Envoyer" class="button" style="height: 30px" name="=" ></center>
</form>

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Le script PHP :

-------------------------------------------------------------------------------------------------------------------------------------------------------------

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body><?php

$message=stripslashes($_POST[message]);

$destinataire="resa@----.com";

$contenu ="<html><head><title><u>Demande de réservation</u></title></head>";

$contenu.="<body><font size=2 face=arial>Bonjour Mme ------,<br>une nouvelle demande de réservation vous a été faite, voici les coordonnées de la personne :<br><br>";

$contenu.="<b>Nom</b> : {$_POST['Nom']}<br>";

$contenu.="<b>Prénom</b> : {$_POST['Prenom']}<br>";

$contenu.="<b>Téléphone</b> : {$_POST['Telephone']}<br>";

$contenu.="<b>E-mail</b> : {$_POST['Mail']}<br>";

$contenu.="<b>Nombre de personnes</b> : {$_POST['Nombre de personnes']}<br>";

$contenu.="<b>Nombre de chambres</b> : {$_POST['Nombre de chambres']}<br>";

$contenu.="<b>Date d'arrivée</b> : {$_POST['Date arrivee']}<br>";

$contenu.="<b>Date de fin</b> : {$_POST['Date de fin']}<br>";

$contenu.="<b>Commentaires</b> : {$_POST['Commentaires']}<br>";

$contenu.="<br><br>A bientôt.</font>";

$contenu.="</body></html>";

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

$headers.= "Content-type: text/html; charset=utf-8\n";

$headers.= "From: $Prenom $Nom<$Mail>\n";

$headers.= "Reply-To: <$Mail>\n";

mail ($destinataire,$sujet,$contenu,$headers);

echo '<script language="Javascript">
<!--
document.location.replace("http://-------/fr/merci.html");
// -->
</script>';

?>

</body>
</html>

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Ainsi, lorsque je rempli correctement toutes les cases du formulaire.
Il m'est envoyé à la bonne adresse que la mise en page du mail comme demandée dans le script PHP. Mais avec aucun mail d'expéditeur ni rien.

Je reçois ça :

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Bonjour Mme -----,
une nouvelle demande de réservation vous a été faite, voici les coordonnées de la personne :

Nom :
Prénom :
Téléphone :
E-mail :
Nombre de personnes :
Nombre de chambres :
Date d'arrivée :
Date de fin :
Commentaires :

A bientôt.

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Merci de votre aide pour réussir à palier ce problème qui me fait vraiment perdre beaucoup de temps mais que je pense en fait très simple à régler ! =-)

Totize.

12 réponses

  1. ---------------------------------- SCRIPT PHP ---------------------------------------------------

    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body><?php

    // debut de recuperation des donnees

    $Nom = $_POST['Nom'];

    $Prenom = $_POST['Prenom'];

    $Telephone = $_POST['Telephone'];

    $Mail = $_POST['Mail'];

    $Nombrepersonnes = $_POST['Nombre_de_personnes'];

    $Nombrechambres = $_POST['Nombre_de_chambres'];

    $Datearrivee = $_POST['Date_arrivee'];

    $Datefin = $_POST['Date_de_fin'];

    $Commentaires = $_POST['Commentaires'];

    // Fin de recuperation des donnees

    $destinataire="emaildereception@mail.com"; // Destinataire des demandes de resa

    $sujet ="Demande de réservation"; // Sujet du mail

    $contenu.="<body><font size=2 face=arial>Bonjour,<br><br>";

    $contenu.="<b>Nom</b> : $Nom <br><br>";

    $contenu.="<b>Prénom</b> : $Prenom <br><br>";

    $contenu.="<b>Téléphone</b> : $Telephone <br><br>";

    $contenu.="<b>E-mail</b> : $Mail <br><br>";

    $contenu.="<b>Nombre de personnes</b> : $Nombrepersonnes <br><br>";

    $contenu.="<b>Nombre de chambres</b> : $Nombrechambres <br><br>";

    $contenu.="<b>Date d'arrivée</b> : $Datearrivee <br><br>";

    $contenu.="<b>Date de fin</b> : $Datefin <br><br>";

    $contenu.="<b>Commentaires</b> : $Commentaires <br>";

    $contenu.="<br><br>A bientôt.<br><br>";

    $contenu.="(Vous pouvez r&eacutepondre directement à cet E-mail)</font>";

    $contenu.="</body></html>";

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

    $headers.= "Content-type: text/html; charset=utf-8n";

    $headers.= "From: $Prenom $Nom <$Mail>n";

    $headers.= "Reply-To: <$Mail>n";

    mail ($destinataire,$sujet,$contenu,$headers);

    echo '<script language="Javascript">
    <!--
    document.location.replace("http://pagederemerciement.com/merci.html");
    // -->
    </script>';

    ?>

    </body>
    </html>

    ---------------------------------------------------------------------------------------------------------
    1. C'est bon ! Ca marche nikel !

      C'était le enctype qui foirait tout ! J'ai laissé POST en majuscules car c'est d'origine comme ça.

      Donc pour ceux qui souhaite les deux codes pour bosser dessus ensuite, je les poste :

      ------------------------------ FORMULAIRE HTML ------------------------------------

      <form action="../cgi-bin/mail.php" METHOD="POST" class="formulaire" ><br>

      <h4> Nom :
      <input name="Nom" type="text" maxlength="70" size="25">
      </h4>
      <h4> Prénom :
      <input name="Prenom" type="text" maxlength="70" size="25">
      </h4>
      <h4> Téléphone :
      <input name="Telephone" type="text" maxlength="70" size="25"></h4>

      <h4> E-mail :
      <input name="Mail" type="text" maxlength="70" size="25"></h4>

      <h4> Nombre de personnes :
      <input name="Nombre_de_personnes" type="text" maxlength="70" size="25">
      </h4>
      <h4> Nombre de chambres :
      <input name="Nombre_de_chambres" type="text" maxlength="70" size="25"></h4>
      <h4> <u>Dates de réservation</u><br>
      Du :
      <input name="Date_arrivee" type="text" maxlength="70" size="25">
      </h4>
      <h4> Au : <input name="Date_de_fin" type="text" maxlength="70" size="25"></h4>
      <h4><br>
      Commentaires :
      <textarea name="Commentaires" cols="40" rows="5" maxlength="400"></textarea>
      </h4>
      <center><input type="Submit" value="Envoyer" class="button" style="height: 30px" name="=" ></center>
      </form>

      --------------------------------------------------------------------------------------------------------
      1. C'est peut-être dû au enctype de ta page html !

        Je sais pas trop à quoi ça sert mais essaye de l'enlever pour voir! lol

        Et mets method="post" en minuscule comme là et pas en majuscule.

        A+

        Gaerebut
        1. Est-ce que quelqu'un comprends où est l'erreur SVP ?

          Vraiment désolé de presser qui que ce soit mais c'est urgent ^^
          1. Enlève tout le HTML de ta page mail.php

            <html><head></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><body></body> et </html>

            A+

            Gaerebut
            1. Est-ce qu'il faut pas créer une table SQL ou quelque chose comme ça ???
              1. Oui je suis bien sur mail.php.

                J'ai enlevé les espaces pour mettre des "_" à la place.

                Ce qui donne pour le form ---> http://paste2.org/p/65742

                Et pour le script PHP ---> http://paste2.org/p/65744

                Et je reçois par mail ---> http://paste2.org/p/65745

                Alors je teste ce que tu m'as dit avec ce script mail.php ---> http://paste2.org/p/65746

                Je rempli correctement mon formulaire... Et "Envoyer" ! Hop ! Page 100% blanche !

                Donc apparement non, je ne reçois pas les variables ?

                Que faire ? D'où vient le PB ? J'ai tout mis ce que j'ai.

                Merci ! J'en ai presque marre ! lol

                Ca va faire du bien quand cette erreur sera trouvée ! ^^

                Totize.
                1. Pas très judicieux de mettre des espaces dans tes name entre les mots (comme "Nom de personnes" par exemple!
                  Essaye en mettant des _ à la place des espaces.

                  Mais essaye de voir si tu reçois bien les variables !

                  Fait juste echo $_POST['Nom']; pour voir si ça te renvoie le nom rentré précédemment !

                  Tu es bien sur la page mail.php ?!

                  A+

                  Gaerebut
                  1. Salut ! Merci pour ta réponse. C'était bien vu ! Mais apparement c'est pas ça... Aie !

                    J'ai enlevé les espaces comme demandé. Mais rien n'a changé.
                    Entre temps j'ai cherché à faire quelques modifs du script PHP :

                    -------------------------------------------------------------------------------------------------

                    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
                    <body><?php

                    // debut de recuperation des donnees

                    $Nom = $_POST['Nom'];

                    $Prenom = $_POST['Prenom'];

                    $Telephone = $_POST['Telephone'];

                    $Mail = $_POST['Mail'];

                    $Nombrepersonnes = $_POST['Nombre de personnes'];

                    $Nombrechambres = $_POST['Nombre de chambres'];

                    $Datearrivee = $_POST['Date arrivee'];

                    $Datefin = $_POST['Date de fin'];

                    $Commentaires = $_POST['Commentaires'];

                    // Fin de recuperation des donnees

                    $destinataire="resa@-------"; // Destinataire des demandes de resa

                    $sujet ="Demande de réservation"; // Sujet du mail

                    $contenu.="<body><font size=2 face=arial>Bonjour Mme ----,<br>une nouvelle demande de réservation vous a été faite, voici les coordonnées de la personne :<br><br>";

                    $contenu.="<b>Nom</b> : $Nom <br>";

                    $contenu.="<b>Prénom</b> : $Prenom <br>";

                    $contenu.="<b>Téléphone</b> : $Telephone <br>";

                    $contenu.="<b>E-mail</b> : $Mail <br>";

                    $contenu.="<b>Nombre de personnes</b> : $Nombrepersonnes <br>";

                    $contenu.="<b>Nombre de chambres</b> : $Nombrechambres <br>";

                    $contenu.="<b>Date d'arrivée</b> : $Datearrivee <br>";

                    $contenu.="<b>Date de fin</b> : $Datefin <br>";

                    $contenu.="<b>Commentaires</b> : $Commentaires <br>";

                    $contenu.="<br><br>A bientôt.</font>";

                    $contenu.="</body></html>";

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

                    $headers.= "Content-type: text/html; charset=utf-8\n";

                    $headers.= "From: $Prenom $Nom <$Mail>\n";

                    $headers.= "Reply-To: <$Mail>\n";

                    mail ($destinataire,$sujet,$contenu,$headers);

                    echo '<script language="Javascript">
                    <!--
                    document.location.replace("http://-----/fr/merci.html");
                    // -->
                    </script>';

                    ?>

                    </body>
                    </html>

                    Ca me met encore seulement la mise en page HTML du mail c'est tout. Comme avant.

                    Sinon je pourrais faire ceci : http://www.commentcamarche.net/forum/affich 1875434 formulaire de contact

                    Mais je perdrais ma mise en page mail, ce qui est vraiment dommage ! Et celle-ci est presque obligatoire car mon form reccueille pas mal d'infos et donc si elles se retrouvent toutes sans mise en page, nous ne sauront pas à quoi elles correspondent...

                    Voilà !

                    Si un pro du PHP passe par là ! Hé Hé :-)

                    Totize.
                    1. Slaut,

                      je pense que c'est dû aux espace que tu as mis dans tes name du formulaire.

                      En fait, tu a mis par exemple name="Nom " avec un espace après Nom et non name="Nom"

                      Tu comprends ?!

                      Essaye de modifier tout ça et redis moi !

                      A+

                      Gaerebut