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
Réponse acceptée

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


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

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
Auteur

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

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

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.

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*/
}?>