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 dans un email et post de variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Par défaut formulaire dans un email et post de variables
    Bonjour à tous,

    J'ai programmé l'envoi automatique d'un email à partir de code php. L'email est construit en plusieurs lignes, et synthétisé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("xxx@free.fr","sujet",$message,$entete)
    $message contient un formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $message.='<form method="post" action="http://xxx.free.fr/test.php">';
    $message.='<table border=0 cellpadding=3 width="549" align="center" cellspacing="0" >';
    $message.='<tr><td><font face="comic sans ms">Nom :</td>';
    $message.='<td><input type="text" name="nom" value="" size=20></td></tr>';
    $message.='<tr><td><font face="comic sans ms">Age :</td>';
    $message.='<td><input type="text" name="age" value="" size=40></td></tr>';
    $message.='</table>';
    $message.='<input type="submit" name="  OK  " value=" valide le test  ">';
    $message.="</form>";
    $message.="</body></html>\n";
    Comme vous pouvez le voir, je voudrais qu'à la soumission du formulaire soient postées la variable $nom et $age, que je pourrai utiliser dans la page http://xxx.free.fr/test.php. Seulement voilà, rien n'est posté...

    Remarque: j'ai fait le test que si je mets le code du formulaire dans une page formulaire.php, au lieu de l'envoyer par email, les valeurs sont bien postées comme on pouvait s'y attendre.

    Y'a-t-il une impossibilité fondamentale à mon problème (on ne peut pas poster à partir d'un email)? proposez-vous une solution de rechange???

    Cordialement
    Mathieu

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Comment récupère tu les valeurs dans ton post.php ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Par défaut
    eh bien, avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message.='<td><input type="text" name="nom" value="" size=20></td></tr>';
    ... qui fonctionne quand on le met dans une page htm séparé, et pas dans un email...

    est-ce que j'ai bien compris ta question?

    Mathieu

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Par défaut
    Ah pardon...
    j'y ai repensé...
    tu voulais dire comment je récupère les valeurs dans la deuxième page?
    ben par exemple avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "voici le nom posté ".$nom."<BR>";
    Et encore une fois, ça marche si le formulaire est dans une page php et pas dans un email...

    Mathieu

  5. #5
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Euh c'est peut être moi qui n'ai pas compris ce que tu fais.

    Si j'ai bien compris, tu envoie un email avec un formulaire et tu voudrais récupérer les informations passée au formulaire dans l'email sur ta page test.php

    Si c'est le cas dans ta page test.php tu dois récupérer les info via la variable globale $_POST.


    Sinon en relisant ton premier post, c'est peut être ton mail qui ne s'affiche pas correctement. Est ce que ton formulaire s'affiche dans le mail ? As-tu mis les bon entête ?

    [EDIT]: tu dois passer par $_POST pour récupérer les valeur d'un formulaire (ou $_GET) (ex: $_POST['nom'])
    Tu peux lire ceci si tu as des problème pour envoyer un mail version HTML : http://a-pellegrini.developpez.com/tutoriels/php/mail/

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 176
    Par défaut
    Tu as tout compris...
    Et pour répondre à ta question, le formulaire s'affiche bien dans l'email.
    Il me semblait que $_POST['nom'] était synonyme de $nom. J'ai tout de même essayé avec $_POST['nom'], mais ça ne fonctionne pas mieux...

    Le problème est-il dans l'en-tête? Je t'envoie tout le code correspondant à l'email, peut-être seras-tu en mesure de voir une grossière erreur ou omission qui fait que la variable n'est pas postée..

    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
    $message="<html><BODY BGCOLOR='#FFFFCC'>\n";
    $message.='<form method="post" action="http://xxx.free.fr/test.php">';
    $message.='<table border=0 cellpadding=3 width="549" align="center" cellspacing="0" >';
    $message.='<tr><td><font face="comic sans ms">Nom :</td>';
    $message.='<td><input type="text" name="nom" value="" size=20></td></tr>';
    $message.='<tr><td><font face="comic sans ms">Age :</td>';
    $message.='<td><input type="text" name="age" value="" size=40></td></tr>';
     
    $message.='</table>';
    $message.='<input type="submit" name="  OK  " value=" valider">';
    $message.="</form>";
    $message.="</body></html>\n";
     
    $entete = "MIME-Version: 1.0\r\n";
    $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $entete .= "From: xxx <xxx@free.fr>\r\n";
     
    if(!mail("yyy@free.fr","sujet",$message,$entete)){
     echo "L'email n'a pu être envoyé !";
    } else {
     echo "Email a bien été envoyé";
    }


    Mathieu

  7. #7
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Ton mail à l'air d'être correct, l'erreur ne doit pas venir de la.

    On peut voir ta page test.php

    Enleve les espaces de
    Je sais pas si ca passe ca.

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

Discussions similaires

  1. Ajouter un Formulaire dans une email
    Par Stouille89 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/10/2007, 13h51
  2. formulaire dans un email
    Par Mathieu72 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/07/2007, 18h50
  3. Réponses: 2
    Dernier message: 26/07/2006, 16h52
  4. [SQL] Récupérer des variables de formulaire dans une requête SQL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2005, 18h44

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