Bonjour
J'ai des sessions qui expirent de façon aléatoire. Le plus souvent à la fermeture du navigateur, comme prévu par session.cookie_lifetime = 0, sauf que j'ai aussi session.gc_maxlifetime = 300, et que j'aimerais bien que ça expire au bout de 300s d'inactivité.
J'ai mis session.gc_divisor = 1 pour que le ramassage d'ordures (garbage collection) soit exécuté à chaque accès à une session : pas de changement.
Par contre, j'ai constaté ce soir que des informations avaient disparu dans le dossier session.save_path au bout d'environ 3/4h pendant que je faisais autre chose, alors qu'elles étaient toujours là au bout des 5mn. Quelqu'un avait tenté d'accéder à une page qui gère les sessions dans un autre répertoire.
Alors j'ai fait un test : ouvrir une session avec Firefox. Attendre les 5 mn : session pas expirée. J'ouvre une session dans un autre répertoire avec IE, et hop, ma 1e session disparait ! mais ça ne marche pas à tous les coups ...
Je ne vois pas trop où chercher ...
Je mets un bout de code des fois que ça viendrait de là.
Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // création de la session après login if (!isset($_SESSION)) session_start(); $_SESSION["var1"] = "toto"; // contrôle de session, dans une autre page if (!isset($_SESSION)) session_start(); if (!isset($_SESSION["var1"]) { message disant que pour la session a expiré exit; // j'ai aussi testé session_start() sans if (!isset($_SESSION)) }
Partager