PHP legt die Sitzungsspeicherzeit fest

王林
Freigeben: 2023-05-22 21:55:06
Original
845 Leute haben es durchsucht

Bei der Website-Entwicklung ist die Sitzung ein sehr wichtiger Mechanismus. Sie kann der Website helfen, die Anmeldeinformationen, Warenkorbdaten und andere ähnliche Informationen zu speichern, um die Datenkonsistenz zu gewährleisten, während der Benutzer auf der Website surft. Normalerweise ist die Sitzungsspeicherzeit sehr kurzlebig, da die Sitzung zerstört wird, sobald der Benutzer den Browser schließt. In einigen Fällen, in denen Benutzerinformationen jedoch über einen längeren Zeitraum gespeichert werden müssen, müssen wir die Sitzungsspeicherzeit festlegen. In diesem Artikel erfahren Sie, wie Sie die Sitzungsspeicherzeit von PHP festlegen.

  1. Sitzungsspeicherzeit

Sitzung hängt von Cookies ab, daher können wir die Sitzungsspeicherzeit indirekt steuern, indem wir die Cookie-Ablaufzeit festlegen. Wenn eine Seite eine Sitzung in einem Cookie speichert, wird das Cookie für einen bestimmten Zeitraum auf dem Computer des Benutzers gespeichert und nach Ablauf vom Browser gelöscht. Dadurch wird die Sitzung zerstört, da das entsprechende Cookie nicht gefunden werden kann.

Standardmäßig liegt die Ablaufzeit von Cookies während der Browsersitzung, d. h. solange der Browser nicht geschlossen ist, bleibt das Cookie immer bestehen. Durch die Festlegung der Ablaufzeit des Cookies können wir jedoch die Speicherdauer des Cookies und damit die Speicherdauer der Sitzung steuern. Hier ein Beispiel:

// 设置过期时间为30天
$expire_time = time() + 60 * 60 * 24 * 30;
setcookie('session_id', session_id(), $expire_time);
Nach dem Login kopieren

In diesem Fall verwenden wir die Funktion setcookie, um das Cookie session_id so zu setzen, dass auf die Sitzung auch nach dem Schließen des Browsers noch zugegriffen werden kann. Die Variable $expire_time wird auf den aktuellen Zeitstempel in Sekunden plus die Anzahl der Sekunden in 30 Tagen gesetzt, d. h. dieses Cookie läuft in 30 Tagen ab.

  1. session.gc_maxlifetime

Wir können auch die maximale Lebensdauer der Sitzung festlegen, indem wir die Option session.gc_maxlifetime in der Datei php.ini ändern. Diese Option gibt die maximale Sitzungsdauer in Sekunden an. Wenn eine Sitzung abläuft, also nach Ablauf dieser Zeit, wird sie automatisch durch den Garbage-Collection-Mechanismus von PHP zerstört. Standardmäßig beträgt der Wert dieser Option 1440 Sekunden (also 24 Minuten). Wir können diesen Wert in der php.ini-Datei wie folgt ändern:

session.gc_maxlifetime = 1800
Nach dem Login kopieren

Dadurch können alle Sitzungen 30 Minuten lang gespeichert werden Wenn es länger dauert, können Sie diesen Wert auf einen größeren Wert einstellen.

Es ist zu beachten, dass eine zu lange maximale Sitzungslebensdauer möglicherweise zu viele Serverressourcen belegt und zu einer zu hohen Serverlast führt.

  1. session_set_cookie_params

Zusätzlich zur Verwendung der Funktion setcookie zum Festlegen der Ablaufzeit des Cookies und zum Festlegen der maximalen Lebensdauer der Sitzung durch Ändern der Option session.gc_maxlifetime in der Datei php.ini können wir auch session_set_cookie_params verwenden Von PHP bereitgestellte Funktion zum Setzen des Cookies. Einige Parameter steuern indirekt die Sitzungsspeicherzeit. Diese Funktion akzeptiert 4 Parameter:

rrree

Darunter:

  • $lifetime: Cookie-Lebensdauer, in Sekunden;
  • $domain: Cookie-Domänenname;
  • $secure: Ob Cookies nur können über das HTTPS-Protokoll gesendet werden.
  • Wenn wir die Funktion session_start verwenden, um die Sitzung zu starten, werden diese Parameter wirksam, um die Speicherzeit der Sitzung zu steuern. Das Folgende ist ein Beispielcode, der die Funktion session_set_cookie_params verwendet, um die Cookie-Lebensdauer festzulegen:
session_set_cookie_params($lifetime, $path, $domain, $secure);
Nach dem Login kopieren

In diesem Beispiel legen wir die Cookie-Lebensdauer auf 1 Stunde und den Cookie-Pfad auf den gesamten Domänennamen fest in diesem Zeitraum im Client gespeichert. Dieser Ansatz ist flexibler als das direkte Festlegen der Cookie-Ablaufzeit, da wir auch den Cookie-Pfad und den Domänennamen jederzeit ändern können, um die Sitzungsspeicherzeit genau zu steuern.

Zusammenfassung
  1. Sitzungen sind ein sehr wichtiger Mechanismus in der Webentwicklung. Sie können viele nützliche Funktionen für Websites bereitstellen, z. B. Benutzerauthentifizierung, Warenkorb usw. Wenn wir Benutzerinformationen über einen längeren Zeitraum speichern müssen, müssen wir die Sitzungsspeicherzeit steuern. In PHP können wir dies erreichen, indem wir die Cookie-Ablaufzeit festlegen, die Option session.gc_maxlifetime in der Datei php.ini ändern oder die Funktion session_set_cookie_params verwenden. Es ist zu beachten, dass eine zu lange Sitzungsspeicherzeit die Auslastung des Servers erhöhen und zu Serverproblemen führen kann. Daher sollten wir die Sitzungsspeicherzeit entsprechend den tatsächlichen Anforderungen angemessen einstellen.

Das obige ist der detaillierte Inhalt vonPHP legt die Sitzungsspeicherzeit fest. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!