Heim > Backend-Entwicklung > PHP-Tutorial > Wie lässt man eine PHP-Sitzung nach 30 Minuten Inaktivität ablaufen?

Wie lässt man eine PHP-Sitzung nach 30 Minuten Inaktivität ablaufen?

DDD
Freigeben: 2024-12-20 03:29:13
Original
225 Leute haben es durchsucht

How to Make a PHP Session Expire After 30 Minutes of Inactivity?

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();
Nach dem Login kopieren

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();
}
Nach dem Login kopieren

Hinweise:

  • Setzen Sie session.gc_maxlifetime mindestens auf den Wert des benutzerdefinierten Timeouts (1800 in diesem Beispiel).
  • Um die Sitzung nach 30 Minuten Aktivität ablaufen zu lassen, verwenden Sie setcookie mit einer Ablaufzeit von time() 60*30.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage