Beim Arbeiten mit PHP-Sitzungen ist es manchmal notwendig, das Sitzungs-Timeout zu ändern, um die Dauer der Benutzeraktivität zu verlängern bevor die Sitzung als abgelaufen gilt. Es ist zwar möglich, Änderungen an der Datei php.ini vorzunehmen, es kann jedoch Situationen geben, in denen der Zugriff auf diese Datei nicht möglich ist.
In solchen Fällen ist es immer noch möglich, das Sitzungs-Timeout mithilfe von PHP-Code zu verlängern. Es ist jedoch wichtig zu verstehen, dass die Implementierung eines strikten Sitzungs-Timeouts eine Codeimplementierung erfordert, um eine strikte Durchsetzung zu gewährleisten.
Wenn Sie bereit sind, eine Untergrenze anstelle eines strikten Limits zu akzeptieren können Sie diesen Parameter ganz einfach ohne benutzerdefinierte Logik festlegen. Für Sitzungen, die mit Cookies implementiert werden, können Sie die folgenden Parameter anpassen:
ini_set('session.gc_maxlifetime', 3600); // Server keeps session data for at least 1 hour session_set_cookie_params(3600); // Clients forget their session ID after 1 hour
Indem Sie den Server so einstellen, dass er Sitzungsdaten eine Stunde lang speichert und Clients anweist, ihre Sitzungs-IDs innerhalb desselben Zeitrahmens zu vergessen, legen Sie effektiv fest eine Obergrenze für die Sitzungsdauer. Beachten Sie, dass beide Schritte für das Erreichen dieses Ergebnisses unerlässlich sind.
Für kritische Umgebungen können Sie die vollständige Kontrolle sicherstellen, indem Sie eine benutzerdefinierte Logik implementieren, um eine Obergrenze für die Sitzungsinaktivität festzulegen und eine festzulegen strenges Zeitlimit.
session_start(); $now = time(); if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) { session_unset(); session_destroy(); session_start(); } $_SESSION['discard_after'] = $now + 3600; // Sets the upper limit to 1 hour
Indem Sie die Ablaufzeit der Sitzung in den Sitzungsdaten verfolgen, erzwingen Sie einen strengen Zeitrahmen für die Sitzung verwenden.
Beachten Sie bei der Arbeit mit Sitzungs-IDs, dass diese bei Bedarf mithilfe von session_regenerate_id neu generiert werden müssen, um sicherzustellen, dass sie nicht vorhersehbar sind.
Das obige ist der detaillierte Inhalt vonWie kann ich das PHP-Sitzungs-Timeout verlängern, ohne php.ini zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!