Aktueller Standort: Startseite> Neueste Artikel> Wie kann man den Lebenszyklus und die Ablaufzeit der PHP -Sitzung festlegen?

Wie kann man den Lebenszyklus und die Ablaufzeit der PHP -Sitzung festlegen?

M66 2025-06-06

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.

1. Verstehen Sie den Sitzungslebenszyklus und die Ablaufzeit

Der Sitzungslebenszyklus besteht aus zwei Teilen:

  1. Ablaufzeit von Client -Cookies : Ob die Sitzungs -ID nach Abschluss des Browsers noch beibehalten wird.

  2. 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.

2. Setzen Sie die Schlüsselfunktionen des Sitzungslebenszyklus

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.

3. Beispielcode

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>

veranschaulichen:

  • 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".

4. Müllsammlung der Sitzung der Sitzung

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.

5. kombiniert mit den tatsächlichen Projektnutzungsvorschlägen

  • 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.

6. Schlussfolgerung

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.