Heim >Backend-Entwicklung >PHP-Tutorial >Wie lässt man eine PHP-Sitzung nach 30 Minuten Inaktivität ablaufen?
PHP-Sitzung nach 30 Minuten ablaufen lassen
Frage:
Wie kann ich eine PHP-Sitzung erstellen, die funktioniert? verfallen nach 30 Minuten?
Antwort:
Methode: Benutzerdefiniertes Sitzungs-Timeout implementieren
PHPs integrierte Sitzungs-Timeout-Methoden, wie z session.gc_maxlifetime und session.cookie_lifetime sind aufgrund verschiedener Faktoren unzuverlässig. Implementieren Sie stattdessen Ihr eigenes Timeout mit:
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) { session_unset(); session_destroy(); } $_SESSION['LAST_ACTIVITY'] = time();
Dieser Code aktualisiert den Sitzungszeitstempel bei jeder Anfrage, hält die Sitzungsdatei aktiv und verhindert ein vorzeitiges Löschen durch den Garbage Collector.
Zusätzliche Sicherheit:
Zum Schutz vor Session-Hijacking generieren Sie die Sitzungs-ID neu regelmäßig:
if (!isset($_SESSION['CREATED'])) { $_SESSION['CREATED'] = time(); } else if (time() - $_SESSION['CREATED'] > 1800) { session_regenerate_id(true); $_SESSION['CREATED'] = time(); }
Hinweise:
Das obige ist der detaillierte Inhalt vonWie lässt man eine PHP-Sitzung nach 30 Minuten Inaktivität ablaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!