Problème envoi de requete formulaire PHP

Bonjour,

Est-ce qu'une bonne âme pourrait m'aider, on m'a aider à faire un formulaire et une page PHP3 pour le renvoi mais ce message s'affiche quand je clique sur envoyer de la page formulaire

erreur page page Fatal error: Call to undefined function: email() in form2mail.php3 on line 65

Je peux envoyer les deux fichiers à celui qui voudrait m'aider, je lance un sacré SOS , je suis super débutant en PHP et je me prends la tête !!!

Merci d'avance Floriris
Configuration: Windows XP
Firefox 3.0.1

9 réponses

  1. Re salut, j'ai collé le bout de code que tu m'as envoyé et j'ai une nouvelle erreur

    Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in form2mail.php3 on line 4

    je te met le code de la page php, peut ête que j'ai mal placé le code. merci encore

    <?php

    //Teste la réception de données
    if(isset $_POST)
    {
    'Récupère les infos du formulaire
    $nom = $_POST['Nom'];
    $tel = $_POST['Tel'];ED
    $mail = $_POST['Mail'];
    'sujet du mail
    $sujet = "Réservation";
    'Corps du mail
    $msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
    'Initialise l'adresse mail du destinataire (ton adresse en fait)
    $dest = "florinda_2@hotmail.fr";

    'envoi du mail
    mail($dest,$sujet,$msg);
    }
    ?>

    <html>

    <head>

    <META HTTP-EQUIV="Content-Type" CONTENT=" text/html; charset=iso-8859-1">

    <title></title>

    <script language="JavaScript" type="text/JavaScript">
    <!--

    function MM_preloadImages() { //v3.0

    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

    }
    //-->
    </script>

    <META NAME="Author" LANG="fr" CONTENT="sauveur tumeo">

    </head>

    <body marginheight="0" topmargin="0">

    <div align="center"></div>

    <br>

    <table width="421" border="0" align="center" cellpadding="0" cellspacing="6" style="BORDER-RIGHT: #990000 1px solid; BORDER-TOP: #990000 1px solid; BORDER-LEFT: #990000 1px solid; BORDER-BOTTOM: #990000 1px solid">

    <TBODY>

    <tr>

    <td> </td>

    </tr>

    <tr>

    <td><div align="center">Votre Réservation est Prise en Compte.</div>

    </td>

    </tr>

    <tr>

    <td><div align="center">Nous vous contacterons tres bientôt</div>

    </td>

    </tr>

    <tr>

    <td> </td>

    </tr>

    <tr>

    <td><div align="center">Merci</div>

    </td>

    </tr>

    <tr>

    <td> </td>

    </tr>

    </table>

    </body>

    </html>

    <?php
    }
    // affiche le html qui suit si erreur
    //
    else{
    ?>
    <html>
    <head><title>Erreur de formulaire</title></head>
    <body bgcolor="white">
    <h1> Erreur de formulaire </h1>
    </body>
    </html>
    <?php
    }
    ?>

    </body>

    </html>

    <?php

    }

    ?>
    0
    1. Salut

      Ton problème vient apparemment du fait que PHP ne connait pas la fonction "email()" que tu appelles.
      Si tu veux utiliser la fonction interne d'envoi de courrier de Php, il faut utiliser mail();

      Tu devrais passer à la version 5 de PHP qui offre plus de fonctions et de facilités sur certaines choses ;-)

      Cdlt

      IC
      -1
      1. Salut
        Le problème vient des premières lignes dans ton fichier form2mail. Supprimes tout ce qu'il y a avant la balise <HTML>

        Maintenant ce fichier n'est pas un fichier PHP. Il ne contient aucune ligne de code PHP. En fait, il affiche le message de confirmation de réservation et c'est tout. Est ce l'effet souhaité ou devrait il faire autre chose ?

        Pour passer en PHP 5, il faut que tu installes le programme PHP 5 à la place de PHP 3.

        Cdlt

        IC
        -1
        1. Salut !

          en fait il faut que je recoive par email la demande de réservation, et ensuite que la demande de réservation s'affiche sur la page aussi pour indiquer au client que tout a été bien pris en compte.

          Florinda
          -1
          1. Ok, dans ce cas là, il te faut ajouter du code PHP dans ton fichier form2Mail.

            <?php

            //Teste la réception de données
            if(isset $_POST)
            {
            'Récupère les infos du formulaire
            $nom = $_POST['Nom'];
            $tel = $_POST['Tel'];
            $mail = $_POST['Mail'];
            'sujet du mail
            $sujet = "Réservation";
            'Corps du mail
            $msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
            'Initialise l'adresse mail du destinataire (ton adresse en fait)
            $dest = "monadresse@mail.com";

            'envoi du mail
            mail($dest,$sujet,$msg);
            }
            ?>
            <HTML>
            Ici la suite de ta page.

            Evidemment, c sommaire, mais c pour donner une idée :-)

            Bon courage

            IC
            -1
            1. je vais tester tout dans la soirée et je te dirai si j'arrive enfin à faire fonctionner ce formulaire, avec toutes ces explications ça devrait aller. merci et bonne soirée . Florinda
              0
            2. Re salut, j'ai collé le bout de code que tu m'as envoyé et j'ai une nouvelle erreur

              Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in form2mail.php3 on line 4

              je te met le code de la page php, peut ête que j'ai mal placé le code. merci encore

              <?php

              //Teste la réception de données
              if(isset $_POST)
              {
              'Récupère les infos du formulaire
              $nom = $_POST['Nom'];
              $tel = $_POST['Tel'];ED
              $mail = $_POST['Mail'];
              'sujet du mail
              $sujet = "Réservation";
              'Corps du mail
              $msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
              'Initialise l'adresse mail du destinataire (ton adresse en fait)
              $dest = "florinda_2@hotmail.fr";

              'envoi du mail
              mail($dest,$sujet,$msg);
              }
              ?>

              <html>

              <head>

              <META HTTP-EQUIV="Content-Type" CONTENT=" text/html; charset=iso-8859-1">

              <title></title>

              <script language="JavaScript" type="text/JavaScript">
              <!--

              function MM_preloadImages() { //v3.0

              var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

              var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

              if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

              }
              //-->
              </script>

              <META NAME="Author" LANG="fr" CONTENT="sauveur tumeo">

              </head>

              <body marginheight="0" topmargin="0">

              <div align="center"></div>

              <br>

              <table width="421" border="0" align="center" cellpadding="0" cellspacing="6" style="BORDER-RIGHT: #990000 1px solid; BORDER-TOP: #990000 1px solid; BORDER-LEFT: #990000 1px solid; BORDER-BOTTOM: #990000 1px solid">

              <TBODY>

              <tr>

              <td> </td>

              </tr>

              <tr>

              <td><div align="center">Votre Réservation est Prise en Compte.</div>

              </td>

              </tr>

              <tr>

              <td><div align="center">Nous vous contacterons tres bientôt</div>

              </td>

              </tr>

              <tr>

              <td> </td>

              </tr>

              <tr>

              <td><div align="center">Merci</div>

              </td>

              </tr>

              <tr>

              <td> </td>

              </tr>

              </table>

              </body>

              </html>

              <?php
              }
              // affiche le html qui suit si erreur
              //
              else{
              ?>
              <html>
              <head><title>Erreur de formulaire</title></head>
              <body bgcolor="white">
              <h1> Erreur de formulaire </h1>
              </body>
              </html>
              <?php
              }
              ?>

              </body>

              </html>

              <?php

              }

              ?>
              0
          2. Salut,

            G corrigé un ou deux trucs. il faut enlever mes commentaires ou les faire précéder de //
            Par contre tu ne peux pas gérer l'affichage conditionnel de ta page comme tu le fais. Si tu veux faire un affichage conditionnel, il faut que tu reprennes le script PHP à part dans un fichier PHP et que tu fasses une redirection en fonction du test de la condition. Je te mets le code à la suite (séapré par une ligne)

            <?php

            //Teste la réception de données
            if(isset ($_POST))
            {
            //Récupère les infos du formulaire
            $nom = $_POST['Nom'];
            $tel = $_POST['Tel'];
            $mail = $_POST['Mail'];
            //sujet du mail
            $sujet = "Réservation";
            //Corps du mail
            $msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
            //Initialise l'adresse mail du destinataire (ton adresse en fait)
            $dest = "florinda_2@hotmail.fr";

            //envoi du mail
            mail($dest,$sujet,$msg);
            }
            ?>

            <html>

            <head>

            <META HTTP-EQUIV="Content-Type" CONTENT=" text/html; charset=iso-8859-1">

            <title></title>

            <script language="JavaScript" type="text/JavaScript">
            <!--

            function MM_preloadImages() { //v3.0

            var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

            var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

            if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

            }
            //-->
            </script>

            <META NAME="Author" LANG="fr" CONTENT="sauveur tumeo">

            </head>

            <body marginheight="0" topmargin="0">

            <div align="center"></div>

            <br>

            <table width="421" border="0" align="center" cellpadding="0" cellspacing="6" style="BORDER-RIGHT: #990000 1px solid; BORDER-TOP: #990000 1px solid; BORDER-LEFT: #990000 1px solid; BORDER-BOTTOM: #990000 1px solid">

            <TBODY>

            <tr>

            <td> </td>

            </tr>

            <tr>

            <td><div align="center">Votre Réservation est Prise en Compte.</div>

            </td>

            </tr>

            <tr>

            <td><div align="center">Nous vous contacterons tres bientôt</div>

            </td>

            </tr>

            <tr>

            <td> </td>

            </tr>

            <tr>

            <td><div align="center">Merci</div>

            </td>

            </tr>

            <tr>

            <td> </td>

            </tr>

            </table>

            </body>

            </html>

            ---------------------------------------------------------------------------------------------------------------------------------------------------------------
            //Gestion de l'affichage conditionnel

            //Fichier Php

            <?php

            //Teste la réception de données
            if(isset ($_POST))
            {
            //Récupère les infos du formulaire
            $nom = $_POST['Nom'];
            $tel = $_POST['Tel'];
            $mail = $_POST['Mail'];
            //sujet du mail
            $sujet = "Réservation";
            //Corps du mail
            $msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
            //Initialise l'adresse mail du destinataire (ton adresse en fait)
            $dest = "florinda_2@hotmail.fr";
            //Mémorise la page à charger en cas de succès
            $page="confirmation.html" //mettre ici le nom du fichier HTML à afficher pour la confirmation
            //envoi du mail
            mail($dest,$sujet,$msg);
            }
            else
            {
            $page="Erreur.html"; //mettre ici le nom du fichier à afficher pour l'erreur
            }

            //Redirige vers la bonne page
            header($page);
            ?>

            Donc il te faut en tout 4 fichiers :
            1) le fichier HTML avec le formulaire
            2) le fichier PHP qui est appelé lors de la soumission du formulaire
            3) le fichier HTML de confirmation
            4) le fichier HTML d'erreur.

            Bon courage

            IC

            PS. j'espère ne pas avoir fait d'autres erreurs. A tester
            -1
            1. hello ça marche !!! enfin que je commence à y voir plus clair, je m'entraine à changer les champs qui seront envoyé par email (par je veux récupérer le nom, le tel, l'adresse...)

              j'ai copié le premier code que tu as placé, par contre le deuxième ou tu parles de gestion de l'affichage conditionnel, je suis entrain de regarder sur le net ce dont il s'agit, à priori je n'en ai pas besoin dans ce cas précis non? en tout cas je te remercie de ta patience car en général quand on est débutant , c'est pas évident de comprendre les infos que que l'on trouve même dans les tutoriaux, c'est jamais expliqué" de façon pédagogique.

              J'y retourne et bonne soirée. Florinda
              0
          3. Salut.

            Y a pas de quoi. Bonne continuation ;-)

            IC
            -1
            1. Coucou me revoilà, je me débrouille pour rajouter des champs à recevoir par emails,

              par ex :

              $msg = "-Réservation de " . $nom . " -Mon Adresse est: " . $Adresse . " -Mon mail : " . $mail . "-ma ville :" . $ville . " Jour de Départ:" . $jours_aller ;

              je reçois bien toutes les infos sur mon adresses email mais tout est à la ligne

              ex:

              -Réservation de renaud -Mon Adresse est: dsdsd -Mon mail : florinda_2@hotmail.fr-ma ville :les chapelles JOurde Départ:2

              est-ce possible de recevoir ces mêmes infos mais que ce soit à la ligne , est-il possible d'incopore des br dans du php?

              Sinon dernière question, mon formulaire contient beaucoup de données obligatoire que le client devra cocher, puisque c'est une réservation, je suis obligé de rajouter à chaque des champs dans le fichier php
              comme ça

              $nom = $_POST['Nom'];
              $Adresse = $_POST['Adresse'];
              $mail = $_POST['Mail'];
              $ville = $_POST['Ville'];
              $jours_aller = $_POST['jours_aller'];

              Merci et bonne soirée.
              0
          4. Salut,

            Tu peux parfaitement mettre du HTML dans le code PHP. Il suffit d'inclure les balises comme cela :

            $texte = "<html><title></title><body><p>Reservation de " . $nom . "</p>";

            Pour les champs, tu n'es pas forcément obligé de les associer à des variables.

            Tu peux aussi faire $msg = "nom : " . $_POST['Nom'];

            Si enfin tu souhaites mettre chaque nom de champ et sa valeur sur une ligne, tu peux faire une boucle de parcours du tableau $_POST

            foreach($_POST as $key=>$valeur)
            {
            $msg = $msg . $key . " : " .$valeur ."<br>";
            }
            Et cela te donnera :
            Nom : Xxxxxxxxxxxxxxx
            Prénom : Yyyyyyyyyyyy
            etc....

            Cdlt

            IC
            -1
            1. tes explications sont super ! bonne soirée . florinda
              0