Der Grund:
Wenn Sie das Browser-Fenster schließen und es erneut öffnen, wird in diesem Moment eine zweite Sitzung mit einer anderen ID gestartet; wenn die verwendete Webanwendung ein sitzungsbasiertes Authentifizierungssystem hat, muss sich der Benutzer erneut anmelden. Gleichzeitig muss sich der Benutzer auch zweimal abmelden!
Lösung:
Diese Funktion verwendet ein echtes Cookie für die Sitzungs-ID und aktualisiert die Ablaufzeit bei jeder Skriptausführung. Die Ablaufzeit ist gleich der PHP-Direktive "gc_maxlifetime" (Standard) oder jedem benutzerdefinierten Wert. Fügen Sie diese Funktion also in Ihre PHP-Datei ein. Wir werden sie brauchen.
<?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);
}
}
?>
Oben auf Ihrer Seite, wo Sie session_id('the_session_id');
y session_start();
entfernen Sie diese Zeilen und starten Sie die Sitzung mit dem unten stehenden Code:
So starten Sie eine Sitzung mit einer in der php-Konfiguration festgelegten Ablaufzeit
start_session();
Um eine Sitzung zu starten, die in 1 Stunde abläuft:
start_session(3600);