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 PHP n'envoie pas les $_POST


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Formulaire dans PHP n'envoie pas les $_POST
    Bonjour

    Je ne pense pas que mon intitulé de discussion soit très clair !

    Voilà j'ai inclus un formulaire dans le PHP et lorsque j'envoie les données le script de destination ne récupére pas les $_POST. Je ne comprends pas pourquoi car si je fais un simple echo du $_POST["jour"], il me le note ?
    Le formulaire fonctionne très bien, la suite par contre ne va pas. L'erreur suivant s'inscrit :

    Notice: Undefined index: materiel in d:\easyphp1-8\www\projet\location\traitreserv.php on line 4


    Voici le code du formulaire :
    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
     
    <?php
    include ("./verif.inc.php");
    echo '
    <html>
    <body>
    <form method="POST" action="traitreserv.php">
    Que voulez vous reserver ? 
        <select name="materiel">
            <option value="ski alpin"> Ski alpin </option>
            <option value="ski de fond">Ski de fond </option>
            <option value="surf"> Surf </option>
            <option value="Luge"> Luge </option>
        </select></br></br>
    Quel jour ? 
        <select name="jour">';
        for ($i=1;$i<=14;$i++)
        {
        echo '<option value="'.$i.'"> Journée '.$i.'</option>';    
        }
    echo '</select></BR><input type="submit" value="valider">
    </form>
    </body>
    </html>';
    ?>
    Voici le script de destination :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    include ("./verif.inc.php");
    echo $_POST["jour"];
    echo $_POST["materiel"];
    $fjour=$jour.".txt";
    $ligne_resa=$_SESSION['login'].";;;".$materiel."\n";
    $fichier=fopen($fjour,"a+");
    fputs($fichier,$ligne_resa);
    fclose($fichier);
    include ("./log.php");
    ?>

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Erreur dans mon code
    Je suis désolée je vous ai joint le script de traitement avec des erreurs. Voilà le script comme j'avais essayé au début et qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    include ("./verif.inc.php");
    $jour=$_POST['jour'];
    $materiel=$_POST['materiel'];
    $fjour=$jour.".txt";
    $ligne_resa=$_SESSION['login'].";;;".$materiel."\n";
    $fichier=fopen($fjour,"a+");
    fputs($fichier,$ligne_resa);
    fclose($fichier);
    include ("./log.php");
    ?>

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Etrange ...Ça devrait marcher.
    Qu'est-ce que ça donne en décommentant les appels à ./verif.inc.php ?
    Est-ce que register_globals est à off (c'est recommandé) ? Dans ce cas, l'appel direct à $jour n'est pas autorisé, il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $jour = $_POST['jour'];

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    D'accord. Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST('materiel'];
    fonctionne ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Voix de PHP impénétrables
    Merci pour votre réponse

    J'ai retesté en intégrant un print_r ($_POST) pour savoir ce qui était transmis et je me suis aperçue que le script avait conservait des \ que j'avais mis \"materiel\" car je testais toutes les solutions.

    J'ai effacé complètement la ligne et tout retapé et là ça fonctionne !!!

    Je ne sais pas vraiment pourquoi ?

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Parce que le \ est inutile dans ton cas, et qu'elles sont considérées comme faisant partie du name. Le script fonctionne tel quel, sans antislash.
    Tu l'as réecrit de la même façon ?
    Enfin, puisque ça marche, tant mieux.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Code caché
    Non en fait à l'écran il n'y avait plus les \ car je les avais effacés (dans value="materiel") mais lorsque je faisais un print_r($_POST), il apparaissaient toujours [\"materiel\"]==>ski de fond !!
    Donc j'ai effacé complètement la ligne (et donc peut être des codes cachés) et tout retapé (toujours sans les \).
    Bizarre

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/03/2012, 14h29
  2. Le formulaire n'envoie pas les erreurs
    Par isitien dans le forum jQuery
    Réponses: 21
    Dernier message: 09/03/2011, 13h55
  3. php ne reçoit pas les données du formulaire
    Par sissendz dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2008, 11h01
  4. Formulaire n'envoie pas les données
    Par vladock dans le forum Langage
    Réponses: 7
    Dernier message: 04/08/2008, 13h24
  5. Submit n'envoie pas les paramètres
    Par CinErarY dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2007, 09h32

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