[RESOLU] passage d'une variable dans un POST

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] passage d'une variable dans un POST

Re: [RESOLU] passage d'une variable dans un POST

par @rthur » 24 mars 2016, 16:04

On est d'accord que ton $test_u ne sert à rien ?

Re: passage d'une variable dans un POST

par dick-perron » 24 mars 2016, 15:56

C'est réglé... j'ai trouvé le problème. Voilà la script qui fonctionne au cas où ça aiderait quelqu'un. Merci pour l'aide!

Code : Tout sélectionner

<?php if (isset($_POST['submit'])) { $data = $_POST['data']; $array = unserialize($data); for ($no=1; $no<11; $no++) { echo "le numéro ".$no." est : ".$array[$no]."</br>"; } exit(); } ?> <fieldset> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php $numeros = array($no); $i="100"; for ($no=0; $no<10; $no++) { $numeros[] = ($i); $test= serialize($numeros); echo "<br><input type='hidden' value='".$test."' name='data' />"; $i++; } ?> </fieldset> <div align="center"> <input type="submit" name="submit" value="Soumettre"> </div> </form>

....J'ai enlevé la ligne qui restait d'un ménage incomplet!

Re: passage d'une variable dans un POST

par tof73 » 24 mars 2016, 10:28

<input type=text name="numeros" value='<?php echo $numeros ?>'>

Re: passage d'une variable dans un POST

par dick-perron » 24 mars 2016, 05:53

Quand je mets [] après la variable numeros dans le bas du script, aucun affichage n'apparait à l'écran. Pour ce qui est du serialize, j'ai essayé d'écrire $numeros=serialize($numeros) avant les champs HTML et de faire l'inverse dans le POST, mais ca ne fonctionne toujours pas...

Code : Tout sélectionner

<?php { if (isset($_POST['submit'])) { $numeros = ($_POST['numeros']); $patate = ($_POST['patate']); $numeros=unserialize($numeros); echo $numeros['3']; // ******** 103 n'apparait pas *************** echo $patate; // ************** pomme apparait ****************** exit(); } ?> <fieldset> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php $patate="pomme"; $numeros = array(); $i="100"; for ($no=0; $no<10; $no++) { $numeros[$no] = $i; $i++; } echo $numeros['3']; // ********* 103 apparait! ************* $numeros=serialize($numeros); ?> <input type=text name="numeros[]" value='<?php echo $numeros[] ?>'> <input type=text name="patate" value='<?php echo $patate ?>'> </fieldset> <div align="center"> <input type="submit" name="submit" value="Soumettre"> </div> </form> <?php } ?>

Re: passage d'une variable dans un POST

par @rthur » 24 mars 2016, 04:49

<input type=hidden name="numeros[]" value='<?php echo $numeros ?>'>
Ici tu écris "Array" dans ton champ de formulaire HTML, et non pas les variables qu'il contient.

Si tu veux transmettre un tableau via un formulaire HTML (et le récupérer en tant que tableau en PHP), tu peux utiliser la fonction serialize() pour "encoder" le tableau dans un format texte, puis unserialize() à la récupération.
Mon conseil, change ton champ hidden en type="text" afin que tu vois ce que tu fais, tu le repassera à hidden quand ça marchera.

Re: passage d'une variable dans un POST

par dick-perron » 24 mars 2016, 04:40

j'ai essayé avec for each sans succès. Je tente quelque chose d'encore plus simple (je pense!) et ça ne fonctionne toujours pas. Je peux récupérer la valeur de numéros['3'] dans le script de départ, mais pas dans le POST... Quelqu'un peut me dire pourquoi ou me référer à une ressource assez simple? Ce serait très apprécié! Ce script n'est évidemment qu'un test. Ce que je veux faire est de faire choisir 10 nombres au hasard et de conserver ces nombres pour différentes parties du script. Ce sont des indices de variables que je veux comparer plus tard, du genre question_456 avec le 456 et les 9 autres nombres au hasard que je garderai dans une variable array et que je réutiliserai plus tard.

Merci ...

Code : Tout sélectionner

<?php { if (isset($_POST['submit'])) { $numeros = ($_POST['numeros']); $patate = ($_POST['patate']); echo $numeros['3']; // ******** 103 n'apparait pas *************** echo $patate; // ************** pomme apparait ****************** exit(); } ?> <fieldset> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php $patate="pomme"; $numeros = array(); $i="100"; for ($no=0; $no<10; $no++) { $numeros[$no] = $i; $i++; } echo $numeros['3']; // ********* 103 apparait! ************* ?> <input type=hidden name="numeros[]" value='<?php echo $numeros ?>'> <input type=hidden name="patate" value='<?php echo $patate ?>'> </fieldset> <div align="center"> <input type="submit" name="submit" value="Soumettre"> </div> </form> <?php } ?>

Re: passage d'une variable dans un POST

par @rthur » 23 mars 2016, 19:55

Bonjour,

Si c'est un tableau que tu veux afficher, il faut le parcourir, par exemple avec un foreach() pour afficher chacune de ses valeurs

Re: passage d'une variable dans un POST

par dick-perron » 23 mars 2016, 17:13

ce que j'ai comme retour:

patate.....ca marche
Array
fini

Re: passage d'une variable dans un POST

par dick-perron » 23 mars 2016, 17:11

Je progresse! La variable patate passe maintenant, mais pas la variable numéros qui est un tableau.

Code : Tout sélectionner

<?php { if (isset($_POST['submit'])) { $patate=($_POST['patate']); $numeros=($_POST['numeros']); echo "patate....."; echo $patate; echo "</br>"; echo '<pre>'; print_r($numeros); echo '</pre>'; echo "fini"; exit(); } ?> <fieldset> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php $patate="ca marche"; $numeros=array(); $numeros[]='5'; $numeros[]='frs'; ?> <input type=hidden name="patate" value="<?php echo $patate ?>"> <input type=hidden name="numeros" value="<?php echo $numeros ?>"> </fieldset> <div align="center"> <input type="submit" name="submit" value="Soumettre"> </div> </form> <?php } ?>

Re: passage d'une variable dans un POST

par dick-perron » 23 mars 2016, 16:48

Comment je fais un champ html qui contient la valeur de patate?

Re: passage d'une variable dans un POST

par or 1 » 23 mars 2016, 15:19

il y a un champ du formulaire qui a le nom "submit", mais aucun champ html n'a comme nom "patate".

Re: passage d'une variable dans un POST

par dick-perron » 23 mars 2016, 15:16

Ok, je simplifie ma question... Pourquoi le contenu de la variable patate ne passe pas dans le if isset? Qu'est-ce que je dois faire pour qu'il passe? et si la variable était un tableau array(), y aurait-il une différence?

Merci de m'aider...

Code : Tout sélectionner

<?php { if (isset($_POST['submit'])) { $patate=($_POST['patate']); echo "patate....."; echo $patate; exit(); } ?> <fieldset> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php $patate="ca marche"; ?> </fieldset> <div align="center"> <input type="submit" name="submit" value="Soumettre" /> </div> </form> <?php } ?>

Re: passage d'une variable dans un POST

par or 1 » 22 mars 2016, 21:39

il y a un champ du formulaire qui a le nom "submit_exercice", mais aucun champ html n'a comme nom "numeros".

passage d'une variable dans un POST

par dick-perron » 22 mars 2016, 21:35

Pourquoi l'option 1 ne fonctionne pas?

Code : Tout sélectionner

<?php session_start(); { if (isset($_POST['submit_exercice'])) { ***** option 1 ********* $numeros = (isset($_POST['numeros']))? $_POST['numeros']:null; ***** option 2 ********* $numeros=array(); $numeros[]='5'; $numeros[]='frs'; echo '<pre>'; print_r($numeros); echo '</pre>'; echo "test"; exit(); } ?> <fieldset> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php $numeros=array(); $numeros[]='5'; $numeros[]='frs'; ?> </fieldset> <div align="center"> <input type="submit" name="submit_exercice" value="Soumettre" /> </div> </form> <?php } ?>