Page 1 sur 1

passer un paramètre à une autre page

Posté : 23 août 2009, 04:53
par TAB
YGlob.php:
<html><head><title>TstGlobal</title></head><body>
 <?PHP $a = "Bonjour "; $GLOBALS["foo"]="Salut" ?>
 <a href="YGlobb.php"><p>Cliquer</p></a>
 </body></html>
YGlobb.php:
<html><head><title>TstGlobal</title></head><body>
 <?PHP $b='Blah!'; echo "a=", $a, 'b=', $b, '$GLOBALS[foo]=', $GLOBALS["foo"] ?>
 </body></html>
YGlob est censé assigner 2 variables globales: $a, et $GLOBALS["foo"].
YGlob affiche 'Cliquer'
Si je clique, j'obtiens YGlobb, qui affiche: a=b=Blah!$GLOBALS[foo]= ; les valeurs globales se sont perdues en chemin... Pourquoi?
Je n'aime pas particulièrement les variables globales; y-a-t-il un moyen élégant de passer un paramètre (par exemple, un 'array index') d'une page(YGlob) à une autre (YGlobb)?

Re: passer un paramètre à une autre page

Posté : 23 août 2009, 07:11
par Victor BRITO
Pour passer un paramètre à une autre page, soit tu utilises paramètre envoyé en GET (via l'URL) ou en POST (via un formulaire, par exemple) soit tu crées une variable de session ; ou bien, autre solution plus facile, tu crées un troisième fichier PHP où tu déclares ta variable $GLOBALS, fichier que tu inclus dans tes deux pages (via include () ou require ()).

Re: passer un paramètre à une autre page

Posté : 23 août 2009, 11:45
par FredoMkb
Bonjour :)
... autre solution plus facile, tu crées un troisième fichier PHP où tu déclares ta variable $GLOBALS, fichier que tu inclus dans tes deux pages (via include () ou require ()).
Euh... :? pas très bien compris cette dernière technique, peux-tu donner un petit exemple Stp ? :priere:

Merci :)

Re: passer un paramètre à une autre page

Posté : 23 août 2009, 13:51
par Victor BRITO
Euh... :? pas très bien compris cette dernière technique, peux-tu donner un petit exemple Stp ? :priere:
C'est pourtant simple :

inclusion.php
<?php
$GLOBALS['foo'] = 'Salut';
$a = 'Bonjour';
?>
YGlob.php
<?php include ('inclusion.php'); ?>
<html><head><title>TstGlobal</title></head><body>
<a href="YGlobb.php"><p>Cliquer</p></a>
</body></html>
YGlobb.php
<?php include ('inclusion.php'); ?>
<html><head><title>TstGlobal</title></head><body>
<?php
$b = 'Blah!';
echo 'a='.$a.' b='.$b.' $GLOBALS[\'foo\']='.$GLOBALS['foo'];
?>
</body></html>

Re: passer un paramètre à une autre page

Posté : 23 août 2009, 14:50
par FredoMkb
... peux-tu donner un petit exemple Stp ? :priere:
C'est pourtant simple : ...
Ha oui, d'accord, c'est comme pour une simple variable, j'avias pensé à autre chose lorsque tu as parlé de l'utilisation de $GLOBALS...

J'ai cru que tu évoqués la possibilité de déclarer une $GLOBALS dans un fichier et de changer sa valeur à partir de n'importe quel autre fichier, tout en retrouvant ces nouvelles valeurs par simple inclusion sur tous les fichiers... bref, j'ai mal interprété ta réponse (j'a cru un instant à un truc un peu spécial ;))...

Merci :)

Re: passer un paramètre à une autre page

Posté : 28 août 2009, 06:30
par TAB
Pour passer un paramètre à une autre page, [...] tu crées un troisième fichier PHP où tu déclares ta variable $GLOBALS, fichier que tu inclus dans tes deux pages (via include () ou require ()).
Merci! ça marche... sauf quand je complique un peu les choses:

YGloCom.php:
<?PHP $a = "Hello "; $GLOBALS["x"]; $x='Quoi?'?>
YGlobb.php:
<html><head><title>TstGlobal</title></head><body>
 <?PHP include_once 'YGloCom.php';//common
 $b='Blah!'; echo "a=", $a, 'b=', $b, '$GLOBALS[x]=', $GLOBALS["x"], 'x=', $x ?>
 </body></html>
YGlob.php:
<html><head><title>TstGlobal</title></head><body>
 <?PHP include_once 'YGloCom.php' ?>
 <?php $x="Oui!"?><a href="YGlobb.php"><p>ClickYes</p></a>
 <?php $x="Non!"?><a href="YGlobb.php"><p>ClickNo</p></a>
 </body></html>
Si je lance YGlob et que je clique 'ClickYes', Yglobb affiche
a=Hello b=Blah!$GLOBALS[x]=Quoi?x=Quoi?
Mais je voulais x='Oui!' au lieu de 'Quoi?'
Autrement dit: comment ajuster x selon ce que l'usager clique?

Re: passer un paramètre à une autre page

Posté : 28 août 2009, 08:33
par zeus
Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ