Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich das PHP-Sitzungs-Timeout verlängern, ohne php.ini zu ändern?

Wie kann ich das PHP-Sitzungs-Timeout verlängern, ohne php.ini zu ändern?

DDD
Freigeben: 2024-12-26 17:36:17
Original
536 Leute haben es durchsucht

How Can I Extend PHP Session Timeout Without Modifying php.ini?

Verlängern des Sitzungs-Timeouts in PHP, ohne php.ini zu ändern

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.

Relaxed Session Timeout

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

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.

Striktes Sitzungs-Timeout

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

Indem Sie die Ablaufzeit der Sitzung in den Sitzungsdaten verfolgen, erzwingen Sie einen strengen Zeitrahmen für die Sitzung verwenden.

Sitzungs-ID-Persistenz

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!

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