session level

Par aStunner, il y a 11 ans


Bonsoir,
J'ai une table "users" et une table "roles" avec "admin et membre"
et donc selon le level de la session "$_SESSION['Auth']['level']
je voudrais afficher tel contenu mais voilà j'utilise

if(isset($_SESSION['Auth']['level']) == 2):

sa ne marche pas, il n'arrive pas a detecter que mon level est = à 2
j'ai essaie de plusieurs manière sans success

6 réponses

connected, il y a 11 ans

Bonsoir,

essaie plutot :

<?php if($_SESSION['Auth']['level'] === 2): ?>

La fonction isset renvoie true ou false, si la une variable est définie ou non.

Bon courage.

aStunner, il y a 11 ans

Ca ne marche j'ai essaiyé avec "==" mais le problème c'est que une fois déconnecté "Undefined: Auth"

connected, il y a 11 ans

Est-ce que tu peux mieux expliquer s'il te plait ? Je n'arrive pas à comprendre ce que tu veux dire.

connected, il y a 11 ans

Je crois avoir compris... Essaye ce code du coup

<?php if(isset($_SESSION['Auth']['level']) && $_SESSION['Auth']['level'] === 2): ?>
RUKIEN, il y a 11 ans

Salut,
En l'état, c'est normal : j'imagine que pour ta déconnexion tu détruis la variable SESSION['Auth'], ce qui fait qu'elle n'existe plus. Or, ensuite, tu tentes un accès à une variable qui etait contenue dans SESSION['Auth'] -qui n'existe plus !- ...
Tu peux dans un premier temps vérifier à l'aide de isset() que SESSION['Auth'] existe puis vérifier la valeur de level, ce qui devrait résoudre ton problème.

nergal71, il y a 11 ans

Bonsoir, personnellement j'aurais dissocié la $_SESSION['Auth'] et la $_SESSION['level'].

C'est ce que j'utilise pour mon site.

<?php if(isset($_SESSION['auth'] ) AND $_SESSION['level'] >= 2) { /*tu affiches du contenu nécessitant le level access 2*/ }else{ /* tu affiches un autre contenu*/ }?>

Edit: Tu peux aussi déclaré une variable $level ="2"; si tu veux qu'elle soit reconnu et dans ce cas tu peux faire :

<?php if(isset($_SESSION['auth'] ) AND $_SESSION['level'] >= $level) { /*tu affiches du contenu nécessitant le level access 2*/ }else{ /* tu affiches un autre contenu*/ }?>