Bei jedem Laden der Seite starte ich session_start()
, um die aktuelle Sitzung fortzusetzen. Wann beginnt der session.gc_maxlifetime
zu zählen? Das erste Mal, dass session_start()
aufgerufen wird und der Cookie der Sitzung gesetzt ist? Oder startet der Timer alle session_start()
?
Wenn% code_% auf ungefähr 24 Minuten eingestellt ist, wenn in dieser Zeitleiste die Sitzungsdaten als Garbage Collected erfasst werden sollen
%Vor% Wenn der Timer auf der ersten Seite geladen wird session.gc_maxlifetime
, dann würde ich erwarten, dass es auf Last 3 Müll sammeln würde. Aber wenn es alle session_start()
zurücksetzt, dann würde es nicht bis Last 4 sammeln.
Ich hoffe, dass es das letztere ist, denn dann könnte ich alle paar Minuten einen Javascript-Herzschlag machen, um eine Seite aufzurufen, auf der session_start()
läuft.
Wenn es ersteres ist, session_start()
beginnt mit der Erstellung des Sitzungscookies zu zählen Ich muss zerstören / neu erstellen oder regenerate_id um die Zählung zurückzusetzen?
Es ist vom letzten Aufruf von session_start () OR / AND der letzte Zeitpunkt, zu dem es geschrieben wird. Meine Vermutung wäre die letztere, da dies den "letzten modifizierten" Zeitstempel ändern würde, den der PHP-Garbage Collector verwenden würde, um zu bestimmen, ob er gelöscht werden muss oder nicht. In diesem Fall beginnt die Zählung ab dem letzten Skript, das mit session_start () endet oder explizit mit dem Skript endet, indem session_ write_ close () aufgerufen wird.
P.S. Dies würde diesen "Herzschlag" schön und einfach (in einer Zeile) machen: Ссылка