8768 sujets

Développement web côté serveur, CMS

Salut à tous !

j'ai un problème concernant une variable de session que je nomme $_SESSION['token'];

Je l'utilise si l'utilisateur s'est bien authentifier, c'est a dire que si il s'est bien authentifier je passe cette variable à true, sinon a false.

Cette variable je l'utilise dans mon index.php avec
<?php if($_SESSION['token']!=true){ include_once("php/vue/connexion.php"); }?>

et dans la partie connexion.php, qui va comparer ce que l'utilisateur a saisie dans le formulaire, et le résultat de la requete SELECT SQL, si on trouve les bons login/pass alors
$_SESSION['token'] = true;


mais quand je lance mon site celui ci pointe sur index (normal) et j'ai un Notice: Undefined index: token in chemin\index.php on line XX...

donc il me sors l'erreur dans ma condition ... comment puis-je résoudre cela ?
ajoute un test d'existence de la variable avec ton test de valeur. En gros, quand je teste un morceau de tableau sans être certains que le tableau existe, je teste à chaque fois trois choses dans le if :
- est-ce que la variable existe (fonction empty, qui va vérifier en plus si c'est vide)
- est-ce que la clé existe dans le tableau (array_key_exists())
- ma condition

C'est vrai aussi dans le cas où c'est pas un tableau, en sautant la 2ème étape. Ca donne ça :

if(!empty($var)&&$var=="blabla")


if(!empty($array)&&array_key_exists('key',$array)&&$array['key']=="blabla")



attention au point d'exclamation, empty retourne true si la variable est vide ou non-déclarée. Il est donc important de tester que ce n'est pas le cas.