Page 1 sur 1

Probleme variable sur plusieurs pages

Posté : 04 nov. 2009, 19:29
par ChuTn3Y87
Bonjour,

Je sollicite votre aide car j'ai un petit soucis en php, en effet, je souhaite utiliser une variable sur plusieurs pages.

J'ai donc utilisé dans ma page1 $_SESSION['$MaVariable'] = $i; où se trouve la variable que je veux utiliser dans la page2.

Dans la page2, j'utilise le contenu de ma variable dans une formule conditionnelle :

if ($_SESSION['$MaVariable']==100) { ............................etc

Cela fonctionne mais il faut d'abord que j'ouvre la page1 dans le navigateur puis que j'aille sur la php et là le resultat de mon IF est correct. Par contre si je n'ouvre pas la page1 avant la page2, la structure conditionnelle me retourne une mauvaise valeur. Il semblerait qu'en visitant la page1 avant, la valeur de $MaVariable soit mis en cache dans le navigateur pour être exploiter dans la page2. Ce qui me semble bizarre vu que php est un langage serveur...

Je souhaiterais en fait que sans préalablement ouvrir la page1, MaVariable de la page1 est le bon contenu et soit traité correctement sur ma page2 qui sera vu par les visiteurs du site.

En précision, sur mes 2 pages, les 1ères lignes sont :

Code : Tout sélectionner

<?php session_start(); ?>

Merci pour votre aide, cordialement.

Re: Probleme variable sur plusieurs pages

Posté : 04 nov. 2009, 20:04
par ouckileou
Si je comprends bien tu initialises une variable dans la page1 et tu l'utilises dans la page2. Donc si tu ne passes pas par la page1, ta variable n'a aucune valeur, ça me paraît plutôt bien fonctionner au contraire.

J'ai loupé un truc ?

Plutôt bizarre le nom de ta variable sinon : $maVariable. Pas besoin du dollar ici.

Tu peux afficher directement le contenu du tableau de variables de session pour débugguer : print_r($_SESSION)

Re: Probleme variable sur plusieurs pages

Posté : 04 nov. 2009, 20:27
par ChuTn3Y87
Pour commencer, merci pour cette réponse rapide :)

En fait, en continuant de me documenter sur les variables SESSIONS, il semblerait que mon code fonctionne normalement mais pas contre, ce n'est pas l'utilisation que je veux en faire.
En effet, la page1 est uniquement visible par l'administrateur mais je souhaiterais qu'une variable générée dans cette page soit visible par tous dans la page2 disponible aux visiteurs.

Dans le fonctionnement actuel, les visiteurs arrivent sur la page mais la variable n'a aucune valeur car ils ne peuvent pas voir la page1 (et ils ne doivent pas la voir)...

Comment est-il possible d'afficher le contenu de la variable de la page1 dans la page2 sans visiter la 1ère ?

J'avoue que je bloque un peu là, je ne vois pas comment régler mon problème , avez vous une idée derrière la tête ou ailleurs ??

Merci Beaucoup.

Re: Probleme variable sur plusieurs pages

Posté : 04 nov. 2009, 20:40
par niuxe
Hello,
[...] Plutôt bizarre le nom de ta variable sinon : $maVariable. Pas besoin du dollar ici. [...]
+1
soit ceci :
$_SESSION[$MaVariable]
soit cela :
$_SESSION['MaVariable']
[...] Comment est-il possible d'afficher le contenu de la variable de la page1 dans la page2 sans visiter la 1ère ? [...]
Après avoir à peu près compris ton soucis, il te suffit de mettre une valeur par défaut. Comme, je ne sais pas d'où sort $i ...
$i = 2; //page pour le visiteur 2+
$_SESSION['MaVariable'] = $i;

Re: Probleme variable sur plusieurs pages

Posté : 04 nov. 2009, 21:23
par ChuTn3Y87
le $i sort de mon code mais c'est vrai que sans l'intégralité du code c'est compliqué. Pour la façon d'écrire le $_SESSION['MaVariable'] a été retenu, mais cela ne change pas grand chose au problème.

Page1

Code : Tout sélectionner

$k=$i+$j; // $l=(($i/$k)*100); $_SESSION['MaVariable'] = $l;
J'affecte à la variable de Session le contenu de $l.

Page2

Code : Tout sélectionner

if ($_SESSION['MaVariable']==100) { echo '<br> Aucun problème sur le réseau'; } elseif ($_SESSION['MaVariable']<100 and $_SESSION['MaVariable']>=50) { echo '<br> Perturbations sur le réseau'; } elseif ($_SESSION['MaVariable']<50) { echo '<br> Problèmes sur le réseau'; }
Ici je traite le contenu de MaVariable. Mais cela fonctionne sans soucis.

Par contre, le problème est que je dois visiter la page1 dans mon navigateur pour que $_SESSION['MaVariable'] prenne une valeur, si je vais directement sur la page2 (ce que les visiteurs feront car ils ne doivent pas voir la page1) dans ce cas la $_SESSION['MaVariable'] ne contient aucune valeur et mon IF ne retourne pas la valeur adéquate.

J'espère que cela est compréhensible.
En vous remerciant encore une fois.

Re: Probleme variable sur plusieurs pages

Posté : 05 nov. 2009, 00:01
par ouckileou
Et si on arrêtait de parler de "maVariable" et que tu nous disais à quoi ça sert concrètement, en terme d'utilisation ?

Parceque là si on reste à "ma variable est settée en page 1, lue en page 2, mais je veux pas passer par la page 1", on va galérer. Dis-nous ce que tu veux faire et là on pourra t'aider à trouver une solution, qui peut-être n'utilisera pas du tout les session :)

Re: Probleme variable sur plusieurs pages

Posté : 05 nov. 2009, 22:17
par Aureusms
Hmmm.... Un peu bizarre ton choix mais essayes de vérifier avant chaque page en incluant la page de vérification.

Ex. page 1
<?php
session_start();
$_SESSION["blabla"] = ($blabla == "blabla") ? TRUE : FALSE;
?>
Ex.? Page 2
<?php
session_start();
require_once ("page1.php");
if ($_SESSION["blabla"])
    echo "blabla est True";
?>
Comme cela tes variables session sont initialiser en page1 et disponibles dans les autres pages.