Page 1 sur 1

variable qui change de valeur toute seule

Posté : 05 févr. 2013, 19:06
par mycha
Bonjour,
deux liens dans une page, un qui envoie la variable modif à valeur vrai et l'autre à valeur faux (en GET). Une page réceptionne la variable avec sa bonne valeur et l'inscrit dans un input de formulaire. Après l'envoi du formulaire avec variable modi à faux, la variable récupérée en php est modifiée et a toujours la valeur vrai. Est-ce dû au choix des mots (vrai et faux) ou quelqu'un a t il une idée de la raison de cette transformation. J'ai essayé la récupération avec $_REQUEST et avec $_GET/$_POST mais le problème est le même.

Re: variable qui change de valeur toute seule

Posté : 05 févr. 2013, 21:47
par moogli
salut,


sans ton code on ne peux pas trop t'aider, parce que la c'est vraiment pas clair :)



@+

Re: variable qui change de valeur toute seule

Posté : 06 févr. 2013, 10:37
par sirakawa
Du bon de mon nez, je sens quelque chose comme un test où on a confondu:
== avec =
du genre:
if ($var = false) pour if ($var == false)

Re: variable qui change de valeur toute seule

Posté : 06 févr. 2013, 10:59
par mycha
malheureusement ce n'était pas aussi "simple". J'ai tout vérifié et réessayé en changeant la valeur des variables qui arrivent en GET. Elles prennent bien la bonne valeur en s'affichant dans le INPUT du formulaire mais à la réception, mystère ! La valeur est modifiée. Je n'ai pas trop de temps alors je laisse tomber pour l'instant ce mystère. J'ai fait deux fichier, un pour chaque variable reçue et je n'ai plus de problème. Si un jour j'ai plus de temps, je chercherai l'erreur et je vous dirai ce qu'il en était. Merci de votre aide.

Re: variable qui change de valeur toute seule

Posté : 06 févr. 2013, 12:27
par sirakawa
La méthode classique est d'aouter des
var_dump($_GET);
là où ça coince.

Re: variable qui change de valeur toute seule

Posté : 06 févr. 2013, 20:46
par Gecko43
Mycha, pourrais-tu donner du code.

D’après ce que tu as dit ce serait du genre :

page.html:

Code : Tout sélectionner

<a href="formulaire.php?modif=vrai">Vrai</a> <a href="formulaire.php?modif=faux">Faux</a>
formulaire.php:

Code : Tout sélectionner

<?php $modif = $_GET['modif']; ?> <form action="resultat.php" method="post"> <input type="hidden" name="modif" value="<?=$modif?>"/> </form>
resultat.php:

Code : Tout sélectionner

<?php $modif = $_POST['modif']; ?> Modif vaut : <?=$modif?>
Déjà tu peu vérifier avec ton code si tu voit des différences...

Re: variable qui change de valeur toute seule

Posté : 07 févr. 2013, 00:02
par mycha
c'est tout à fait ça et le contenu du input (visible à l'écran) est bien la variable reçue du lien <a>. C'est après l'envoi que la réception en php est modifiée. Jamais vu ça....

Re: variable qui change de valeur toute seule

Posté : 07 févr. 2013, 00:36
par AB
c'est tout à fait ça et le contenu du input (visible à l'écran) est bien la variable reçue du lien <a>. C'est après l'envoi que la réception en php est modifiée. Jamais vu ça....
Peut-être dû au fait que register_globals est activé... Vérifies pour voir. Sinon fait des var_dump à réception de la variable (en tout début de ton script de réception) puis au cours du déroulement de ton script.

Re: variable qui change de valeur toute seule

Posté : 08 févr. 2013, 09:13
par Gecko43
essaye un :
<pre>
<?php print_r($_POST['modif']); ?>
</pre>
A la permière ligne de resultat.php, comme sa on verra ce qui est renvoyé par ton formulaire déja.

Re: variable qui change de valeur toute seule

Posté : 08 févr. 2013, 10:48
par mycha
c'est justement ce que j'ai fait et où est le problème : en pré-saisie la valeur afficher dans le formulaire est bonne (<?=isset(....) mais à l'arrivée dans le echo (ou print) elle a changé de valeur.

Re: variable qui change de valeur toute seule

Posté : 08 févr. 2013, 17:33
par AB
c'est justement ce que j'ai fait et où est le problème : en pré-saisie la valeur afficher dans le formulaire est bonne (<?=isset(....) mais à l'arrivée dans le echo (ou print) elle a changé de valeur.
Soit plus précis sinon on ne peut pas te renseigner, donnes-nous les valeurs exactes avant et après (avec var_dump()). Regardes aussi le code html généré par ton formulaire (touches clavier Ctrl+u) pour voir si la bonne valeur se trouve dans ton formulaire.

Enfin une remarque au passage, pour ce genre de script (transmettre des variables de pages en pages) on utilise des variables de session.

Re: variable qui change de valeur toute seule

Posté : 09 févr. 2013, 13:06
par mycha
Je vais essayer de précicer :

Page 1, 2 liens (pas de variables de cession car ils ne sont utiles que là), bref, 2 liens banals.
<a href="saisie_list_pages.php?modif=faux"><button style="background-color:#ff0000;color:#ffffff;">Ajouter une nouvelle page</button></a>
<a href="saisie_list_pages.php?id=<?php echo $id; ?>&modif=vrai&pos=0" style="text-decoration:none;">MODIFIER</a>
Je clique sur le premier, la variable modif envoyée vaut FAUX

Page 2, récupération de modif
if (isset($_POST['modif'])) $modif = $_POST['modif']; else if (isset($_GET['modif'])) $modif = $_GET['modif']; else $modif = "faux"; (j'ai fait aussi avec request)
et un formulaire qui reprend les infos (si id n'est pas vide). Un champ caché se charge de la variable modif
<input type="hidden" name="modif" value="<?=isset($modif)?$modif:'';?>" />
Si je mets ce champ en input text, la valeur affichée est bien FAUX
et un var_dump (comme conseillé plus haut) me renvoit bien array(1) { ["modif"]=> string(4) "faux" }

Envoi du formulaire avec action sur page 2
que ce soit par le var_dump ou par le echo, la variable modif se retrouve modifiée après l'envoi

Re: variable qui change de valeur toute seule

Posté : 09 févr. 2013, 18:24
par AB
Le code que tu montre est fonctionnel (teste le dans deux pages distinctes et ça fonctionne). Le problème est ailleurs.