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

PHP & Base de données Discussion :

les variables POST changent


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut les variables POST changent
    bonjour a tous et a toutes , j'ai un petit probleme de variable POST , j'essaye de stocker une variable dans un POST pour la récupérer ensuite et qu'elle ne bouge pas mais je n'y arrive pas , je vous montre le code :
    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
    <?php
     
    	 		$question = rand(0,11);
    			$captchas_question = array(
    					"deux plus un","trois + deux","cinq plus trois","six moins un","six plus un","cinq fois deux","trois moins deux","six fois deux","trois plus quatre","quatre fois deux","deux moins un","trois plus deux"
    					);
    			$captchas_reponse = array(3,5,8,5,7,10,1,12,7,8,1,5);
    					?>
     
    <!-- label avec la question de la réponse -->
    			<label for="reponse">
    			<?php if(isset($_POST["question"])){
    			echo($_POST["question"]);}
    			else{$_POST["question"]=$captchas_question[$question];
    				echo($_POST["question"]);
    				}
    			?>
    			</label><br>
    <!-- input réponse -->
    			<input type="text" name="reponse">
    <!-- verif de la réponse -->
    			<?php if (isset($_POST["reponse"])) {echo $_POST["reponse"];} 
    ?>
    Le code en lui meme n'est pas finit .. c'est juste pour vous montrer : je cherche a rendre une valeur variable $captchas_question[$question] en POST["question"] pour qu'elle ne bouge plus , je voudrais que ce code stock une variable en fait pour qu'elle soit statique , si qqn peut m'aider ca serait cool , j'ai essayé les sessions aussi mais toujours pas le bon effet . Normalement la question du LABEL devrait rester immobile voila c'est ca mon but

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Les variables POST proviennent d'un formulaire. Dans ton code il n'y en a pas.

  3. #3
    Membre confirmé Avatar de zipzap75
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2017
    Messages : 59
    Par défaut
    ok merci est ce que tu peux me dire dans quel genre de variable je peux stocker une valeur et qu'elle reste constante jusqu’à nouvel ordre stp ? si c'est pas dans un post c'est dans quoi ? SESSION ?? j'ai essayé sans succès ça marche pas , et en fait si il y a un formulaire mais il est avant et apres le code que j'ai mis dans mon message donc on ne le voit pas

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Essaie ça.

    Code php : 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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    <?php
    $question = rand(0,11);
    $captchas_question = array(
         "deux plus un","trois + deux","cinq plus trois","six moins un","six plus un","cinq fois deux","trois moins deux","six fois deux","trois plus quatre","quatre fois deux","deux moins un","trois plus deux"
         );
    $captchas_reponse = array(3,5,8,5,7,10,1,12,7,8,1,5);
    $tricheur       = false;
    $pas_de_reponse = false;
    if (isset($_POST['captcha'])) 
    {
     $questionIni = $_POST['captcha'];
     if (in_array($questionIni,$captchas_question)) 
     {
      if (isset($_POST['reponse']))
      {
       $ok      = false;
       $reponse = $_POST['reponse'];
       foreach($captchas_question as $key => $value)
       {
        if ($value == $questionIni) {
         if ($captchas_reponse[$key] == $reponse )
         {
          $ok = true;
         }
        }
     
       }
      }
      else
      {
       $pas_de_reponse = true;
      }
     } 
     else
     {
      $tricheur = true;
     }
    }   
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <style type="text/css">
    </style>
    <script>
    </script>
    </head>
    <body>
    <?php
    if (isset($ok)) 
    {
     if (!$tricheur && !$pas_de_reponse) 
     {
      if ($ok)
      {
       print "Réponse ok<br>";
      }
      else
      {
       print "Réponse ko<br>";
      }
     }
     else
     {
      if ($tricheur) {
       print "Petit malin !!!<br>";   
      }
      if ($pas_de_reponse) {
       print "Il faut donner une réponse !!!<br>";   
      }  
     }
    }
    else
    {
     $ok = false;
    }
    if (!$ok)
    {?>
    <form action="test9331b.php" method="post">
    <!-- label avec la question de la réponse -->
       <label for="reponse">
       <?php if(isset($_POST["question"])){
       echo($_POST["question"]);}
       else{$_POST["question"]=$captchas_question[$question];
        echo($_POST["question"]);
        }
       ?>
       </label><br>
       <input type="hidden" name="captcha" value="<?php print $captchas_question[$question];?>"/>
    <!-- input réponse -->
       <input type="text" name="reponse"><br/>
       <input type="submit" name="sbm" value="Envoyer"/>
    </form><?php
    }
    ?>
    </body>
    </html>

  5. #5
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Une version plus aboutie.

    Pour tester ce code tel quel, il faut nommer le fichier test9331c.php.

    Code php : 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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    <?php
    $captchas_question = array(
         "deux plus un"      => 3,
         "trois + deux"      => 5,
         "cinq plus trois"   => 8,
         "six moins un"      => 5,
         "six plus un"       => 7,
         "cinq fois deux"    => 10,
         "trois moins deux"  => 1,
         "six fois deux"     => 12,
         "trois plus quatre" => 7,
         "quatre fois deux"  => 8,
         "deux moins un"     => 1,
         "trois plus deux"   => 5
         );
    $question = array_rand($captchas_question);    
    $tricheur       = false;
    $pas_de_reponse = false;
    $ok             = false;
    if (isset($_POST['captcha'])) 
    {
     $questionIni = $_POST['captcha'];
     if (isset($captchas_question[$questionIni])) 
     {
      if (isset($_POST['reponse']))
      {
       $reponse = $_POST['reponse'];
       if ($reponse  != '') 
       {
        if ($captchas_question[$questionIni] == $reponse)
        {
         $ok = true;    
        }
       }
       else
       {
        $pas_de_reponse = true;    
       }
      }
      else
      {
       $pas_de_reponse = true;
      }
     } 
     else
     {
      $tricheur = true;
     }
    }   
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <style type="text/css">
    </style>
    <script>
    </script>
    </head>
    <body>
    <?php
    if (isset($ok)) 
    {
     if (!$tricheur && !$pas_de_reponse) 
     {
      if ($ok)
      {
       print "Réponse ok<br>";
      }
      else
      {
       print "Réponse ko<br>";
      }
     }
     else
     {
      if ($tricheur) {
       print "Petit malin !!!<br>";   
      }
      if ($pas_de_reponse) {
       print "Il faut donner une réponse !!!<br>";   
      }  
     }
    }
    else
    {
     $ok = false;
    }
    if (!$ok)
    {?>
    <form action="test9331c.php" method="post">
    <!-- label avec la question de la réponse -->
       <label for="reponse">
       <?php echo $question; ?>
       </label>
       <br>
       <input type="hidden" name="captcha" value="<?php print $question;?>"/>
    <!-- input réponse -->
       <input type="text" name="reponse"><br/>
       <input type="submit" name="sbm" value="Envoyer"/>
    </form><?php
    }
    ?>
    </body>
    </html>

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par zipzap75 Voir le message
    ...dans quel genre de variable je peux stocker une valeur et qu'elle reste constante jusqu’à nouvel ordre ?...
    Petit récapitulatif :

    1/ Dans n'importe quelle variable $ma_variable, ou array $mon_array
    Utilisable dans le script courant (ou plus avec le mot-clé "global" : Portée des variables).




    2/ Transmettre une variable d'une page à une autre : $_POST ou $_GET




    3/ Pouvoir utiliser une variable dans plusieurs pages ( sans être obligé de la "transmettre")
    A cet effet, on utilise les variables de SESSION : $_SESSION.
    L'intérêt est de pouvoir l'utiliser d'une page à l'autre, sans être obligé de la "transmettre" (via $_POST ou $_GET).
    Elle est modifiable.


    Il faut rajouter au tout début de chaque page :
    4/ Si tu veux une CONSTANTE (= qui ne changera jamais), il faut utiliser une... CONSTANTE.
    Elle n'est plus modifiable, une fois définie.

    Dernière modification par Invité ; 06/08/2017 à 09h12.

Discussions similaires

  1. récupérer les variables postées dynamiquement
    Par Vetchostar dans le forum Langage
    Réponses: 9
    Dernier message: 03/11/2008, 23h02
  2. script .pl qui lit les variable post
    Par my_isac dans le forum Web
    Réponses: 3
    Dernier message: 15/10/2008, 10h15
  3. Réponses: 4
    Dernier message: 08/09/2008, 15h36
  4. récupérer toutes les variables post
    Par camyo dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2008, 14h42
  5. [MySQL] Apostrophe dans les variables postées
    Par Mathieu72 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/02/2007, 14h03

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