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 :

probleme avec les hidden et l'envoi POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut probleme avec les hidden et l'envoi POST
    Bonjour à tous,

    Je veux envoyer des variables php via input hidden avec un formulaire qui appelle une page php externe par la methode POST.

    voici le code des deux pages:

    index.php

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
      <head>
        <title>MagicNumber 1.0</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      </head>
      <body>
         <?php
            $magic_number = rand(1,100);
            $essai = 0;
         ?>
          <form method="post" action="magicnumber.php">
              Tapez un nombre  entre 1 et 100 : <input id="nombre_saisi" type="text" />
              <input id="magic_number" type="hidden" value="<?php $magic_number; ?>" />
              <input id="essai" type="hidden" value="<?php $essai; ?>" />
              <input id="valider" type="submit" value="Valider" />
          </form>
      </body>
    </html>

    et magicnumber.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
    <?php
    $magic_number = $_POST['magic_number'];
     $nombre_saisi = $_POST['nombre_saisi'];
     $essai = $_POST['essai'];
     
     echo count($_POST);
     
     if(isset($nombre_saisi)){
         echo 'le nombre saisi est : '.$nombre_saisi;
     
        if($magic_number < (int)$nombre_saisi) {
             $essai++;
             echo 'Essai '.$essai;
             echo 'Plus grand!';
         }
         else if($magic_number > (int)$nombre_saisi) {
             $essai++;
             echo 'Essai '.$essai;
             echo 'Plus petit!';
         }
        else {
            echo 'Vous avez trouve en '.$essai.'essai(s)';
        }
      }
      else{
          echo 'valeurs non definies';
      }
    ?>
    apparemment la page magicnumber.php ne recoit aucune variable.pouvez vous m'aidez svp?

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    tu ne fais jamais d'echo()

    exemple pour $essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input id="essai" type="hidden" value="<?php $essai; ?>" />
    // DEVIENT
    <input id="essai" type="hidden" value="<?php echo $essai; ?>" />

    PS : entoure ton code des balises appropriées stp : [code ] ton code ici [ /code] (sans les espaces)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut j'ai modifié mon code dans index.php
    maintenant index.php c'est ça:

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
      <head>
        <title>MagicNumber 1.0</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      </head>
      <body>
         <?php
            $magic_number = rand(1,100);
            $essai = 0;
         ?>
          <form method="post" action="magicnumber.php">
              Tapez un nombre  entre 1 et 100 : <input id="nombre_saisi" type="text" />
              <input id="magic_number" type="hidden" value="<?php echo $magic_number;?>" />
              <input id="essai" type="hidden" value="<?php echo $essai;?>" />
              <input id="valider" type="submit" value="Valider" />
          </form>
      </body>
    </html>
    quand magicnumber.php est appelé count($_POST) me donne toujours zero. donc aucune variable , meme pas le nombre_saisi n'est recue par magicnumber.php

    je vois pas le souci . please help

  4. #4
    Membre éclairé Avatar de coach759
    Profil pro
    Webmaster
    Inscrit en
    Août 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 79
    Par défaut
    Bonjour,

    C'est normal que tu ne puisse pas récupérer la valeur de ton POST:
    Ce n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="essai"/>
    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="essai"/>
    Du coup, tu pourra récupérer tranquillement la valeur de tes POST.

    Deuxième chose, lorsque l'on récupère des valeurs saisies par l'utilisateur, il est souhaitable de les "protéger", grace à un htmlspecialchars() ou htmlentities(), comme ça, le serveur considère ce qu'à rentré l'utilisateur comme du HTML, donc inoffensif (Imagine que quelqu'un rentre des instruction qui effacerait ta base...)

    Bonne Journée

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Par défaut nouvelle version avec seulement index.php
    voici mon nouveau code pour index.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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
      <head>
        <title>MagicNumber 1.0</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <?php
            $magic_number = rand(1,100);
            $essai = 0;
         ?>
      </head>
      <body>
          <form method="post" action="<?php echo $_SERVER['SELF']; ?>">
              Tapez un nombre  entre 1 et 100 : <input name="nombre_saisi" type="text" />
              <input name="magic_number" type="hidden" value="<?php echo $magic_number; ?>" />
              <input name="essai" type="hidden" value="<?php echo $essai; ?>" />
              <input name="valider" type="submit" value="Valider" />
          </form>
     
          <?php
             $magic_number = $_POST['magic_number'];
             $nombre_saisi = $_POST['nombre_saisi'];
             $essai = $_POST['essai'];
     
            htmlentities($essai);
     
            if(isset($nombre_saisi) && isset($magic_number) && isset($essai)){
                echo 'le nombre saisi est : '.$nombre_saisi.'<br/>';
                echo 'le nombre magique est : '.$magic_number.'<br/>';
     
                if($magic_number < (int)$nombre_saisi) {
                    $essai++;
                    echo 'Essai '.$essai;
                    echo 'Plus petit!';
                }
                else if($magic_number > (int)$nombre_saisi) {
                    $essai++;
                    echo 'Essai '.$essai;
                    echo 'Plus grand!';
                }
                else {
                    echo 'Vous avez trouve en '.$essai.'essai(s)';
                }
            }
        ?>
      </body>
    </html>
    comment faire pour stocker la valeur aleatoire de magic_number afin quelle ne change pas a chaque appel de la page?

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Dans une session...

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2004
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 304
    Par défaut
    Utilise les variables de Session.
    Au 1er chargement de la page, tu crée une variable de session contenant ton nombre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
    if(!isset($_SESSION["magic_number"]))//Si la variable n'existe pas, on la crée
      $_SESSION["magic_number"]=taValeur;
     
    $magic_number=$_SESSION["magic_number"];

Discussions similaires

  1. bot HTTP probleme avec les POST
    Par djo0012 dans le forum C++
    Réponses: 3
    Dernier message: 21/07/2006, 05h40
  2. probleme avec les posts des formulaires
    Par axel-erator dans le forum Langage
    Réponses: 6
    Dernier message: 04/05/2006, 11h41
  3. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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