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 :

Variables de formulaire et transmission par e-mail


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Variables de formulaire et transmission par e-mail
    bonjour,

    Je voudrais récupérer, par mail ,les données de champs d'un formulaire d'une page HTML
    Je programme le traitement de mon formulaire par un script PHP.
    Mais en hebergement chez Free , je ne parviens pas à recuperer les données entrées par l'utilsateur.
    (J'ai fait un essai chez un autre herbergeur et ça marche)
    La fonction MAIL de mon script PHP fonctionne mais seules les constantes me parviennent et pas les variables entrées dans le formulaire par un utilisateur.

    Voici le source de ma page HTML contenant le formulaire (contact.htm)
    Cette page est traité par le scipt PHP du second fichier source : process.php
    Les trois variables de champs que je n'arrive pas à recupérer sont nom,sexe et email

    Code html : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <HTML>
    <HEAD>
    <TITLE>page de contact avec formulaire
    </TITLE>
    </HEAD>
    <BODY BGCOLOR="#FDF5E6">
    <B><FONT COLOR="#FF6600"><FONT SIZE=+3>PAGE
    DE CONTACT </FONT>&nbsp;&nbsp;</FONT></B>
     
    <!-- début du formulaire avec les paramétrages pour traitement par script PHP  -->
     
    <FORM name='contact_par formulaire' action='process.php'  method='POST' >
     
    <BR><B>&nbsp;</B>
     
    <P><B><FONT COLOR="#3366FF">
    <FONT SIZE=+1>Quel est votre nom ?</FONT></B>
     
    <P><INPUT TYPE="text" NAME="nom" SIZE ="55" VALUE="" >
     
    <P>
    <HR WIDTH="100%">
     
    <P><B><FONT COLOR="#3366FF">
    <FONT SIZE=+1>Etes vous un homme ou une femme ?</FONT></B>
     
    <P><INPUT TYPE="radio" NAME="sexe" VALUE="homme"><B><FONT COLOR="#000099">Homme</FONT></B>
     
    <P><INPUT TYPE="radio" NAME="sexe" VALUE="femme"><B><FONT COLOR="#000099">Femme</FONT></B><B></B>
     
     
    <HR WIDTH="100%">
     
    <P><B><I><FONT COLOR="#000000"><FONT SIZE=+1>
    <U>Entrez votre adresse email..</U>&nbsp;</FONT></I></B>
    <INPUT TYPE="text" NAME="email">
    <BR><B>&nbsp;</B>
     
    <P><INPUT type="submit" name="  O K  " value=" ENVOI  ">
    </FORM>
    <!-- fin du formulaire -->
     
    <HR>
    </BODY>
    </HTML>


    Voici le source PHP du fichier process.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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <HTML>
    <HEAD>
    <TITLE>traitement page de contact</title>
    <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </HEAD>
    <BODY BGCOLOR="#FFFFE0" TEXT="#000000">
     
    <!-- début script php traitement page HTML de contacts  -->
    <SCRIPT language="PHP">
     
    $adresse="x@fai.net";
    $from=$email;
    $titre="recuperation donnees formulaire\n";
    $data="mon nom est : $nom\n";
    $data.="je suis un (ou une) : $sexe\n";
     
    // teste execution correcte de la fonction MAIL
     
    if (mail($adresse,$titre,$data,"From:$from"))
    echo("<center><font color=green><br><br><br><h2>Vos reponses ont ete transmises .</h2></font><br>
    </center>");
    else
    echo("<center><font color=red><br><br><br><h2>erreur de transmission </h2></font><br>");
    </SCRIPT>
     
    <!-- fin script php -->
     
    </BODY>
    </HTML>

  2. #2
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    salut,

    alors déja les balises php sont <?php et ?>

    de plus tu ne recupere pas les valeur de ton formulaire:
    $sexe=$_POST['sexe'];
    $nom=$_POST['nom'];
    $mail=$_POST['mail'];

    ++

  3. #3
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Salut,
    de plus tu ne recupere pas les valeur de ton formulaire:
    $sexe=$_POST['sexe'];
    En effet, je crois que chez free (comme chez 99,99% des FAI) la fonction register_globals est à off...

    Pour tester si tes variables ont une valeur, fais unS'il y a quelque chose, c'est que register_globals est à on, sinon c'est à off et il faut récupérer la valeur comme t'a montré csbilouze.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SCRIPT language="PHP">
    jamais vu ! Ca fonctionne ça?

    Enfin, les balises HTML en majuscule, c'est mal
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  4. #4
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    Adoptons une syntaxe stricte vive le xhtml ^^

    EDIT:

    je te conseillerai de mettre ton formulaire avec la meme page que le traitement.

    ex:

    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
    <?php
    if($envoie_formulaire==1){
     
      //traitement de ton formulaire.
      $mail=$_POST['mail'];
      //etc.....
     
      }//fin de if($active_formulaire==1)
     
    echo "
          <form action=\"$PHP_SELF?envoie_formulaire=1\" method=\"post\">
           
            ton formulaire
    
          </form>
          ";
    ?>

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 17
    Points
    17
    Par défaut ça fonctionne merci
    Merci
    ça fonctionne maintenant,il fallait effectivement récuperer mes variables avec $_POST['var'] alors qu'auparavant chez free il n'etait pas utile de mettre le $_POST .
    Ce qui m'a troublé c'est que chez Club-Internet mes variables de formulaires sans le $_POST continuent d'etre recupérées mais plus chez Free !
    Donc je pensais à une version differente de PHP entre les deux FAI,mais c'est plutot une configuration differente (pour les variables globales ou locales) qui les différencie

    En revanche la syntaxe (un peu littéraire)
    <SCRIPT language="PHP"> est tout à fait autorisée et fonctionne parfaitement !

  6. #6
    Membre régulier Avatar de csbilouze
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    re,

    Citation Envoyé par rglot
    En revanche la syntaxe (un peu littéraire)
    <SCRIPT language="PHP"> est tout à fait autorisée et fonctionne parfaitement !
    c'est vrai? et c'est compatible avec tous les navigateurs???

    Pour free, effectivement je me rappelle qu au debut je faisais comme toi, mais pourtant pas plus tard qu hier j ai fais un phpinfo et register_global est sur on

    Citation Envoyé par phpinfo()
    post_max_size 2M 2M
    precision 14 14
    register_argc_argv On On
    register_globals On On
    report_memleaks On On
    safe_mode On On

  7. #7
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Alors là, je suis sur le Q....

    Register globals à on chez Free !
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

Discussions similaires

  1. Formulaire avec envoi par e-mail
    Par riboul dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2010, 16h13
  2. [Mail] Envoi de données d'un formulaire par e-mail
    Par gorgoroth dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2007, 10h53
  3. Envoi d'un formulaire par e-mail
    Par Windaube dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2007, 09h03
  4. Problème de réception du formulaire par e-mail
    Par karushi dans le forum InfoPath
    Réponses: 3
    Dernier message: 30/07/2007, 10h39
  5. envois d'un formulaire par e-mail
    Par adenak dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/03/2007, 15h28

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