[PHP] Variable de session qui ne se réinitialise pas
Kopros
Messages postés
595
Date d'inscription
Statut
Membre
Dernière intervention
-
Kopros Messages postés 595 Date d'inscription Statut Membre Dernière intervention -
Kopros Messages postés 595 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je viens vers vous pour vous embêter avec une question pas très grave, mais qui titille ma curiosité !
J'ai fait une interface php à laquelle on se connecter avec login/mot de passe.
A la connexion, j'initialise la variable de session, et un cookie se crée si on a coché la case qui fait que.
La variable de session c'est $_SESSION['id_account']
(et le cookie s'appelle id_account, ce qui n'est pas très juste comme nom car il contient également le mot de passe crypté, mais on s'en moque c'est pas de lui dont je veux vous parler.)
Une fois connecté, on peut ouvrir une fenêtre popup. Le php de la popup vérifie si on est bien connecté avant d'afficher quoi que ce soit.
Donc si j'ouvre une popup, que je copie son url et que je la colle dans un autre navigateur (avec lequel je suis pas connecté) il m'envoie sur la page de connexion, ce qui est très bien.
Mais si je me déconnecte entre temps depuis mon 1er navigateur, et que je colle l'adresse dans celui-ci, et bien il affiche le contenu de la popup, comme si j'étais encore connecté !
Après vérification, le cookie est bien supprimé à la déconnexion, mais la variable de session est encore utilisée.
Voici le code pour se déconnecter :
Alors pourquoi le cookie est détruit mais la variable de session est restée ??
Comme je l'ai dit c'est pas bien grave car si la session est morte on ne peut pas voir le contenu, mais je trouve ça bizarre.
Je viens vers vous pour vous embêter avec une question pas très grave, mais qui titille ma curiosité !
J'ai fait une interface php à laquelle on se connecter avec login/mot de passe.
A la connexion, j'initialise la variable de session, et un cookie se crée si on a coché la case qui fait que.
La variable de session c'est $_SESSION['id_account']
(et le cookie s'appelle id_account, ce qui n'est pas très juste comme nom car il contient également le mot de passe crypté, mais on s'en moque c'est pas de lui dont je veux vous parler.)
Une fois connecté, on peut ouvrir une fenêtre popup. Le php de la popup vérifie si on est bien connecté avant d'afficher quoi que ce soit.
Donc si j'ouvre une popup, que je copie son url et que je la colle dans un autre navigateur (avec lequel je suis pas connecté) il m'envoie sur la page de connexion, ce qui est très bien.
Mais si je me déconnecte entre temps depuis mon 1er navigateur, et que je colle l'adresse dans celui-ci, et bien il affiche le contenu de la popup, comme si j'étais encore connecté !
Après vérification, le cookie est bien supprimé à la déconnexion, mais la variable de session est encore utilisée.
Voici le code pour se déconnecter :
setcookie('id_account', '', time()+1,'/',$_SERVER['HTTP_HOST']);
$_SESSION=array();
session_destroy();
session_write_close();
Alors pourquoi le cookie est détruit mais la variable de session est restée ??
Comme je l'ai dit c'est pas bien grave car si la session est morte on ne peut pas voir le contenu, mais je trouve ça bizarre.
A voir également:
- [PHP] Variable de session qui ne se réinitialise pas
- Easy php - Télécharger - Divers Web & Internet
- Réinitialiser pc sans mot de passe - Guide
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Expert php pinterest - Télécharger - Langages
J'ai déjà été confronté à ce genre de problème, du coup je mets toujours session_start() au début de tous mes fichiers PHP (avec 2 ou 3 autres fonctions comme ini_set() )