2009-08-04 4 views
0

J'ai une instruction if/elseif dans laquelle je passe une variable GET. Une fois à l'intérieur du bloc corrent, je peux faire écho à quelque chose pour m'assurer que je suis au bon endroit. Une fois là, j'ai essayé plusieurs fois de définir une variable de session mais cela ne fonctionne pas correctement. Je suis sûr que je ne fais pas quelque chose de bien.La variable de session PHP ne fonctionnera pas correctement

if(isset($_GET['mygetvar'])){ 
    $_SESSION['flag'] = 'on'; 
}else{ 
    $_SESSION['flag'] = 'off'; 
} 

Quand je vérifie le lien pour me prendre au premier bloc, je prévois de voir le drapeau mais je reçois rien du tout. J'ai déjà commencé la session tout en haut de la page. Tout ce que je veux faire est d'utiliser cette session comme un drapeau. Si c'est le cas, faites quelque chose d'autre pas. Je veux essentiellement l'utiliser comme un interrupteur.


EDIT: Voici le code réel. L'avove était un exemple. Si vous trouvez une erreur de syntaxe dans ce code, alors il y a vraiment une erreur. Je ne pense pas parce que je peux faire écho ce qui est dans les blocs de code très bien.

if(isset($_GET['out'])) 
{ 
    $_SESSION['rim'] = 'on'; 
    echo 'out'; 
} 
else 
{ 
    $_SESSION['rim'] = 'off'; 
    echo 'in'; 
} 

Ok, voici ce qui se passe .... Quand je print_r ($ _ SESSION); à l'intérieur les blocs if/else, je peux voir l'écho des résultats corrects. Est-ce normal?

+1

est _SESSION $ [ « drapeau »] - « off » une faute de frappe quand il doit être = non - –

+0

Bonne prise .. Oui, c'est une faute de frappe. :) Merci –

+1

Il est clair à partir de plusieurs de vos réponses que vous n'avez pas copié et collé le code qui cause le problème, vous l'avez écrit à la main. Pour obtenir une réponse précise, veuillez coller le code actuel mot pour mot. –

Répondre

2

Vous rappelez-vous d'appeler au préalable le session_start()?

+0

Oui, je pense que je l'ai déjà mentionné dans mon article –

+0

Essayez de décharger le contenu de $ _SESSION en utilisant print_r() - voir ce qui est défini, si quoi que ce soit. – Amber

+0

Salut Dav, je l'ai déjà fait, ce que je reçois est array (0) { –

0

$ _SESSION est un tableau. Vous devriez avoir

if($_GET['mygetvar']){ 

Notez le support carré autour mygetvar

$ EDIT: Et vous devriez probablement faire

if(isset($_GET['mygetvar'])){ 
+0

Merci David. C'est une autre faute de frappe.Il est tard et je suis vraiment épuisé et je suis assez dégoûté par cette chose. :) Dans mon code actuel, j'ai les parenthèses autour du get var. En fait, quand je regarde le vôtre un peu plus près, il semble que vous ayez aussi une faute de frappe. Je pense qu'il devrait être si (isset ($ _ GET ['mygetvar'])) –

+0

hahaha ouais vrai, je vais éditer. –

+0

il est possible que votre erreur soit ailleurs, essayez echo $ _SESSION ['rim'] après l'avoir placé dans le bloc. Si cela montre la valeur correcte, alors votre problème n'est pas de régler une session var –

1
if($_GET(['mygetvar'])) 

est faux ($ _GET est pas une fonction, mais un tableau). En outre, vous voulez probablement être vérifier si cette requête existe param ou non, essayez donc

if(isset($_GET['mygetvar'])) 
+0

Merci Paul, j'ai simplement oublié d'inclure la fonction isset * *. –

Questions connexes