Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die Ablaufzeit einer Sitzung in PHP fest

So legen Sie die Ablaufzeit einer Sitzung in PHP fest

PHPz
PHPzOriginal
2023-04-04 13:59:234063Durchsuche

Beim Schreiben von PHP-Websites speichern Entwickler häufig Benutzerdaten in Session, um Funktionen wie seitenübergreifende Informationsübertragung und Benutzerauthentifizierung zu implementieren. Standardmäßig werden PHP-Sitzungen automatisch gelöscht, wenn die Sitzung endet, oder verfallen, wenn der Browser geschlossen wird. Manchmal müssen Entwickler jedoch die Ablaufzeit der Sitzung genauer steuern, um die Sitzung für einen bestimmten Zeitraum gültig zu halten. In diesem Artikel erfahren Sie, wie Sie die Sitzungsablaufzeit in PHP festlegen.

  1. Grundlegende Konzepte

Bevor wir beginnen, müssen wir die folgenden zwei Konzepte verstehen:

Sitzungs-ID: Jedem Benutzer wird beim Einrichten einer Sitzung mit dem Server eine eindeutige Sitzungs-ID zugewiesen, die zur Identifizierung des Benutzers verwendet wird Sitzungsstatus.

Sitzungsvariablen: Sitzungsvariablen beziehen sich auf Variablen, die während der Sitzung auf der Serverseite gespeichert werden. Sie werden zum Speichern von Benutzerdaten verwendet.

  1. So ändern Sie die Sitzungsablaufzeit

2.1. Ändern Sie die php.ini-Datei.

Die Sitzungsablaufzeit von PHP kann in der php.ini-Konfigurationsdatei mithilfe des Parameters session.gc_maxlifetime in Sekunden festgelegt werden. Standardmäßig beträgt der Wert 1440 Sekunden, also 24 Minuten. Sie können es ändern, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie die Konfigurationsdatei php.ini.
  2. Suchen Sie die folgende Zeile: session.gc_maxlifetime = 1440.
  3. Ändern Sie 1440 auf die gewünschte Ablaufzeit in Sekunden.
  4. Speichern und schließen Sie die Datei php.ini.
  5. Starten Sie den Webserver neu.

Das Ändern dieses Parameters wirkt sich auf die Sitzungsablaufzeit aller PHP-Skripte aus.

2.2. Im Code festlegen

Wenn Sie nur die Sitzungsablaufzeit einer bestimmten Seite ändern oder die Sitzungsablaufzeit im Code nach Bedarf dynamisch festlegen müssen, können Sie den folgenden Code verwenden:

session_start (); // Sitzung starten
$expireTime = 60*30; // Die Ablaufzeit beträgt 30 Minuten
$_SESSION['timeout'] = time() + $expireTime; // Legen Sie die Ablaufzeit der angegebenen fest Sitzungsvariable
?> ;

Verwenden Sie im Code $_SESSION['timeout'], um eine Sitzungsvariable anzugeben, die sich auf die Ablaufzeit bezieht. Es speichert den Wert des aktuellen Zeitstempels (time()) plus die Ablaufzeit ($expireTime). Bei jedem Besuch der Seite können Sie überprüfen, ob diese Variable abgelaufen ist. Rufen Sie die Funktion session_destroy() auf, um die Sitzung zu zerstören.

2.2.1. Durch Ändern der Sitzungslebenszyklusparameter

Sie können auch die Funktion session_set_cookie_params() verwenden, um die Ablaufzeit der Sitzung im Code festzulegen. Diese Funktion kann mehrere Parameter akzeptieren. Der wichtigste davon ist der Parameter „Sitzungslebenszyklus“, der die Ablaufzeit der Sitzung bestimmt.

Das Folgende ist ein Beispiel:

session_start();
$expireTime = 60*30; // Die Ablaufzeit beträgt 30 Minuten
session_set_cookie_params($expireTime);
?>

Dieser Code wird Die Ablaufzeit der Sitzung ist auf 30 Minuten festgelegt.

  1. Andere Hinweise

Ob durch Ändern der php.ini-Datei, Festlegen im Code oder Festlegen über die Parameter des Sitzungslebenszyklus, es gibt die folgenden Hinweise:

  • Die Ablaufzeit der Sitzung ist nicht absolut genau. Da es auf dem PHP-Garbage-Collection-Mechanismus basiert, kann die tatsächliche Ablaufzeit aufgrund mehrerer Faktoren nicht mit der eingestellten Zeit übereinstimmen.
  • Wenn Sie die Lastausgleichstechnologie für mehrere Server verwenden, müssen Sie sicherstellen, dass die Sitzungs-IDs aller Server gleich sind, da sonst Probleme mit der Sitzungsinkonsistenz auftreten.

Sitzung ist eine sehr wichtige Funktion beim Schreiben von PHP-Anwendungen. Durch Festlegen der Sitzungsablaufzeit können Sie die Sicherheit der Benutzerdaten besser schützen und unnötige Verschwendung von Serverressourcen vermeiden.

Das obige ist der detaillierte Inhalt vonSo legen Sie die Ablaufzeit einer Sitzung in PHP fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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