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.
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);
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.
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
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.
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:
rrreeDarunter:
session_set_cookie_params($lifetime, $path, $domain, $secure);
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.
ZusammenfassungDas 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!