IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

formulaire n'envoi pas le corps du message


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut formulaire n'envoi pas le corps du message
    bonjour, j'ai créé un formulaire de contact pour mon site web avec une page en html et un script en php pour l'envoi sur mon adresse mail.
    La problème c'est que quand je test le formulaire à partir de mon site, je reçois bien un mail dans ma boite mail contenant le sujet les noms et prenoms de l'expediteur ainsi que l'adresse mail mais pas le message en lui même.
    ci-dessous le code de ma page html et php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head>
     
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Mon formulaire.</title></head><body>
    <form name="formulaire" action="traitement.php" method="post">
    <table>
    <tbody><tr><th>Formulaire de contact</th>
    </tr><tr><td>Votre nom : </td><td><input name="nom" size="50" type="text"></td></tr>
    <tr><td>Votre prénom : </td><td><input name="prenom" size="50" type="text"></td></tr>
    <tr><td>Votre email</td><td><input name="email" size="50" type="text"></td></tr>
    <tr><td>Le motif de votre message</td><td><input name="sujet" value="renseignement" type="radio">Renseignement<br>
    <input name="sujet" value="probleme technique" type="radio"> Probleme technique<br>
    <input name="sujet" value="partenariat" type="radio">Partenariat</td></tr>
    <tr><td>Votre message</td><td><textarea name="texte" cols="50" rows="20"></textarea></td></tr>
    <tr><td><input name="annuler" value="Annuler" type="reset"></td><td>
    <input name="soumettre" value="Envoyer" type="submit"></td></tr>
    </tbody></table>
    </form>
    </body></html>
    le php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?
    $adresse="alex@moi.fr";
    $from="From: $prenom $nom<$email>\r\n";
    $from.="Reply-To: $prenom $nom <$email>\n";
    $from.="X-priority:3\n";
    $texte="<html>";
    $texte.="$texte";
    $texte.="</html>";
    $from.="MIME-Version: 1.0\r\n";
    $from.="Content-Type: text/html";  
    if (mail($adresse,$sujet,$texte,$from))
    echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir &agrave; l'accueil</a></center>");
    else
    echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
    ?>
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Je sais pas ce que tu fais tu as pas l'air d'utiliser la fonction mail().

    Tu fais $texte=$texte, ça serait plutot $texte=$_POST['texte'].

    En plus si tu fais
    $texte.="$texte";
    et ensuite
    $texte.="</html>";

    Y'a comme un problème...

    C'est quoi ces . avants les =
    ?
    C'est pas parce que j'ai tort que vous avez raison.

  3. #3
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    c'est à dire que j'ai suivi un tutoriel pour créer un formulaire donc je ne comprends pas tout, mais le problème doit être minime plus que seul le contenu du message n'est pas envoyé.

    Ps :Si tu pouvais me montrer les modifs que tu ferais en les incluant dans le code complet ça m'aiderait beaucoup. Meerci d'avance
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Déjà, faire :

    $texte='poil'

    Puis :

    $texte= 'mon super message vachement long'

    Puis :

    $texte='poil'


    ça risque pas de te donner une valeur de $texte égale à "mon super message vachement long"...
    C'est pas parce que j'ai tort que vous avez raison.

  5. #5
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    j'ai modifier le fichier php comme tu me l'as cobseillé et maintenant quelque soit le message que je rentre dans le formulaire, je reçois dans ma boite mail un message avec comme contenu poil.

    On a un peu progressé
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Non mais je t'ai pas dis de faire ça, j'ai caricaturé ce que tu as fais.

    Tu as dis à ta variable $texte qu'elle a la valeur <html>

    Ensuite tu lui à dis qu'elle a la valeur $texte soit le contenu du formulaire (qui au demeurant doit s'appeler $_POST['texte'] puisqu'elle provient du formulaire).

    Ensuite tu lui a de nouveau dis qu'elle a la valeur </html>
    ==> TU AS EFFACE LE PRECEDENT CONTENU.


    Et comme </html> ça s'affichera pas dans un mail, ça t'affiche rien c'est tout.


    Je sais pas où tu as pêché ce code mais j'ai rarement vu plus crade.
    C'est pas parce que j'ai tort que vous avez raison.

  7. #7
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    cette fois ci ça fonctionne mais ça n'est encore pas au top :
    si je mets ça : $texte.=$_POST['texte']; le contenu du message se repete 2 fois. Par contre si je mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte.=$_POST/*['texte']*/;
    il n'apparait plus qu'une fois mais à la fin il me marque
    ps : je comprends vite mais il faut m'expliquer longtemps.
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    C'est n'importe quoi ton $_POST/*['texte']*/ je sais pas où tu es allé chercher un truc pareil.

    Pourquoi ça se répèterait deux fois ? Soit tu as deux echo $texte, soit le contenu du message est contenu deux fois dans $texte.
    C'est pas parce que j'ai tort que vous avez raison.

  9. #9
    Membre du Club

    Inscrit en
    Juillet 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 33
    Points : 51
    Points
    51
    Par défaut
    .= veut dire concatener à gauche c'est correct et très propre.

    Ce code donne quoi chez toi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?
    $prenom = trim($_POST['prenom']);
    $email = trim($_POST['email']);
    $nom = trim($_POST['nom']);
    $text = trim($_POST['texte']);
     
    $adresse="alex@moi.fr";
    $from="From: ".$prenom." ".$nom."<".$email.">\r\n";
    $from.="Reply-To: ".$prenom." ".$nom." <".$email.">\n";
    $from.="X-priority:3\n";
    $texte="<html>";
    $texte.=$text;
    $texte.="</html>";
    $from.="MIME-Version: 1.0\r\n";
    $from.="Content-Type: text/html"; 
    $sujet = 'Mail du site'; 
    if (mail($adresse,$sujet,$texte,$from))
    {
    	echo '<center><font color="green"><br /><br /><br /><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href="">Cliquez ici pour revenir &agrave; l\'accueil</a></center>';
    }else{
    	echo '<center><font color="red"><br /><br><br><h2>Probl&egrave;me &agrave; l\'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br />Contactez nous plus <a href="mailto:'.$adresse.'">classiquement</a>';
    }
    ?>

  10. #10
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    Citation Envoyé par saint-pere
    .= veut dire concatener à gauche c'est correct et très propre.

    Ce code donne quoi chez toi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?
    $prenom = trim($_POST['prenom']);
    $email = trim($_POST['email']);
    $nom = trim($_POST['nom']);
    $text = trim($_POST['texte']);
     
    $adresse="alex@moi.fr";
    $from="From: ".$prenom." ".$nom."<".$email.">\r\n";
    $from.="Reply-To: ".$prenom." ".$nom." <".$email.">\n";
    $from.="X-priority:3\n";
    $texte="<html>";
    $texte.=$text;
    $texte.="</html>";
    $from.="MIME-Version: 1.0\r\n";
    $from.="Content-Type: text/html"; 
    $sujet = 'Mail du site'; 
    if (mail($adresse,$sujet,$texte,$from))
    {
    	echo '<center><font color="green"><br /><br /><br /><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br><a href="">Cliquez ici pour revenir &agrave; l\'accueil</a></center>';
    }else{
    	echo '<center><font color="red"><br /><br><br><h2>Probl&egrave;me &agrave; l\'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br />Contactez nous plus <a href="mailto:'.$adresse.'">classiquement</a>';
    }
    ?>
    malheureusement, ce code ne fonctionne pas. lorsque je clic sur envoyer dans le formulaire j'ai le message comme quoi ça à bien été envoyer mais je ne reçois rien dans ma boite mail
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Ok autant pour moi, en ce qui concerne la concaténation à gauche avec le .=


    Mais ce n'est pas fonction mail() que tu utilises là si je ne m'abuse.


    essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mail (
     
        "$email",//l'adresse de destination
     
        "sujet du message",
     
        "Bonjour,\n
    blablablabalbalbalblablalballbalbalblal   //texte du message
     "
     
      );
    Le sujet et le contenu du message étant déterminé par des variables $_POST issues du formulaire.
    C'est pas parce que j'ai tort que vous avez raison.

  12. #12
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    rebonjour donc avec
    ça fonctionne en prenant le script du début. Il reste juste un problème, c'est que si j'utilises des é à è â ê dans le message rédigé dans le formulaire, ces lettres sont tranformées en suite de caractère bizzarre dans le mail que je reçois. Y a t-il un moyen d'éviter cela?
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  13. #13
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $texte=utf8_decode($_POST['texte']);

  14. #14
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    nickel ça fonctionne. Une dernière petite question :
    comment effectuer une redirection automatique après quelques secondes vers une page en particulier?
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  15. #15
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    tu peux le faire en ajoutant une balise meta dans la page :

    exemple sur la page de confirmation de l'envoi d'email :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <html>
    <head>
    <title>Message envoyé !</title>
    <meta http-equiv="Refresh" content="5;URL=mapage.php">
    </head>
    <body>
    <h1>message envoyé !</h1>
    <p>vous serez redirigé automatiquement vers mapage.php dans 5 secondes...</p>
    <p>si ce n'est pas le cas, merci de cliquer sur ce lien : <a href="mapage.php">retour</a></p>
    </body>
    </html>

  16. #16
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    nickel ça fonctionne. Une dernière petite question :
    comment effectuer une redirection automatique après quelques secondes vers une page en particulier?
    Tu peux faire ça en javascript grâce à la fonction timeOut().

  17. #17
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    impeccable, ça fonctionne, Merci ska_root et les autres
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon formulaire n'envoie pas le mail
    Par Prodiguy dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2013, 11h08
  2. envoi email avec corps de message
    Par Chonchon dans le forum Langage
    Réponses: 1
    Dernier message: 01/10/2012, 00h06
  3. Réponses: 4
    Dernier message: 04/03/2012, 14h29
  4. Le formulaire n'envoie pas les erreurs
    Par isitien dans le forum jQuery
    Réponses: 21
    Dernier message: 09/03/2011, 13h55
  5. Formulaire n'envoie pas les données
    Par vladock dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2008, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo