In PHP ist die Sitzung ein häufiger Mechanismus, um Funktionen wie die Identifizierung der Benutzeridentität und die Datenbindung zu realisieren. Standardmäßig werden die Lebenszyklus- und Ablaufzeit der Sitzung von der Konfigurationsdatei des Servers (z. B. php.ini ) gesteuert. Wir können jedoch auch den Sitzungslebenszyklus über die entsprechenden Einstellungen vor Session_Start () anpassen.
In diesem Artikel wird detailliert erklärt, wie die Lebenszyklus- und Ablaufzeit der Sitzung durch Session_Start () sowie verwandte Vorsichtsmaßnahmen festgelegt werden.
Der Sitzungslebenszyklus besteht aus zwei Teilen:
Ablaufzeit von Client -Cookies : Ob die Sitzungs -ID nach Abschluss des Browsers noch beibehalten wird.
Die Speicherzeit der Server -Sitzungsdaten : Der Überlebenszyklus der auf dem Server gespeicherten Sitzungsdaten.
Beide müssen ordnungsgemäß eingerichtet werden, um den von Ihnen erwarteten Sitzungslebenszyklus zu erreichen.
Bevor Sie Session_Start () aufrufen, können Sie den Sitzungslebenszyklus mit den folgenden zwei Funktionen festlegen:
Session_set_cookie_params () : Legt die Ablaufzeit des Client -Cookies fest.
INI_SET ('Session.gc_maxlifetime', Sekunden) : Legen Sie die maximale Überlebenszeit der Serversitzungsdaten fest.
Hier ist ein Beispiel für die Festlegung des Sitzungslebenszyklus auf 1 Stunde (3600 Sekunden):
<Code> & lt;? php // Setzen Sie den serverseitigen Sitzungslebenszyklus auf 1 Stunde ini_set ('Session.gc_maxlifetime', 3600); // Setzen Sie den Client Cookie Life Cycle auf 1 Stunde
Session_set_cookie_params ([[
'lifetime' => 3600,
'Pfad' => '/',
'Domain' => 'M66.net',
'Secure' => True, // Senden Sie Cookies nur unter https (nach Bedarf aktiviert)
'httponly' => true, // js deaktivieren, um auf Cookies zuzugreifen, um die Sicherheit zu verbessern
'samesit' => 'lax' // Verhindern Sie CSRF -Angriffe, optionale Werte: lax, streng, keine
]);
// Sitzung starten
Session_Start ();
// Setzen Sie eine Sitzungsvariable
$ _Session ['user_id'] = 1234;
?>
</code>
Session.gc_maxlifetime : steuert die Zeit, in der der Server Sitzungsdaten beibehält. Der Standardwert beträgt normalerweise 1440 Sekunden (24 Minuten).
Der Lebensdauerparameter von Session_set_cookie_params () bestimmt die Ablaufzeit des Client -Cookies. Wenn es 0 ist, bedeutet es "Der Browser ist geschlossen und ungültig".
Auch wenn GC_MAXLIFETIME festgelegt ist, löscht der Müllsammler von PHP die abgelaufene Sitzung nicht jedes Mal, wenn sie anfordert. Die Wahrscheinlichkeit des Löschens wird durch die folgenden Konfigurationselemente bestimmt:
session.gc_probability = 1
session.gc_divisor = 100
Zeigt an, dass es eine 1% ige Chance gibt, eine Sitzungsreinigung durchzuführen. Kann bei Bedarf eingestellt werden.
Wenn Sie mehrere Subdomänen ausführen (z. B. API.M66.NET , admin.m66.net ), wird empfohlen, die Domäne auf .m66.net festzulegen, um eine Subdomain-Sharing-Sitzung zu erreichen.
Stellen Sie bei der Verwendung von HTTPS sicher, dass Sie sichere und httponly -Parameter für die Verbesserung der Sitzungssicherheit festlegen.
Reinigen Sie abgelaufene Sitzungsdateien regelmäßig, um zu vermeiden, dass Stapel- und Beschäftigungsveranstaltungen der Server besetzen.
Durch rationales Konfigurieren von Session_set_cookie_params und session.gc_maxlifetime können wir den Lebenszyklus der PHP -Sitzung flexibel steuern und den Benutzerstatus sicherer und effizienter verwalten. Das Erstellen dieser Einstellungen vor dem Aufrufen von Session_Start () ist ein wichtiger Schritt bei der Implementierung des individuellen Sitzungsverhaltens.