Raison:
Si vous fermez la fenêtre du navigateur et ouvrez-le à nouveau, puis à ce moment, une deuxième session est démarré avec un ID différent, si l'application Web utilisée a un système d'authentification basé sur la session de l'utilisateur doit se reconnecter. En même temps, l'utilisateur doit se déconnecter deux fois!
Solution:
Cette fonction utilise un vrai biscuit pour l'ID de session et met à jour l'heure d'expiration à chaque exécution du script. L'expiration est égale à la directive PHP "gc_maxlifetime" (par défaut) ou à chaque valeur personnalisée. Alors, mettez cette fonction dans votre fichier PHP. Nous en aurons besoin.
<?php
// $expire = the time in seconds until a session have to expire
function start_session($expire = 0)
{
if ($expire == 0)
$expire = ini_get("session.gc_maxlifetime");
else
ini_set("session.gc_maxlifetime", $expire);
if (empty($_COOKIE['PHPSESSID']))
{
session_set_cookie_params($expire);
session_start();
}
else
{
session_start();
setcookie("PHPSESSID", session_id(), time() + $expire);
}
}
?>
Maintenant, dans le haut de votre page où vous l'émission session_id('the_session_id');
et session_start();
, supprimer ces lignes et commencer la session avec ce code ci-dessous:
Pour démarrer une session avec un temps donné par la fin configuration php
start_session();
Pour démarrer une session qui expirera en 1 heure:
start_session(3600);
"quand j'ouvre un nouveau navigateur" - voulez-vous dire comme si vous avez FF, puis ouvrez IE? –
Avez-vous trouvé une solution à ce problème parce que j'ai besoin de la même chose avec ma session? –