Der Ablaufmechanismus der PHP-Sitzung besteht darin, dass der Client die Sitzungs-ID an den Server übergibt und der Server dann die entsprechende Datei basierend auf der Sitzungs-ID findet und sie deserialisiert, um den Sitzungswert zu erhalten Dann wird es beim Speichern von Transform serialisiert und dann geschrieben.
Der Wissenspunkt, den ich heute teilen werde, ist der Sitzungsausführungsmechanismus in PHP. Er ist für Entwickler, die mit PHP vertraut sind, nicht unbekannt, aber für diejenigen ist er nicht sehr verständlich die gerade erst anfangen. Als nächstes werde ich in diesem Artikel den Sitzungsbetriebsmechanismus in PHP im Detail vorstellen, der hoffentlich für alle hilfreich ist
[Empfohlene Kurse: PHP-Tutorial]
Bedeutung des PHP-Sitzungsbetriebsmechanismus:
PHP-Sitzungsbetriebsmechanismus ist Wenn der Client die Sitzungs-ID ändert, findet er die entsprechende Datei basierend auf der Sitzungs-ID. Beim Lesen wird der Dateiinhalt deserialisiert, um den Sitzungswert zu erhalten. Beim Speichern wird zuerst serialisiert und dann
Klassifizierung des PHP-Sitzungsmechanismus
Es gibt zwei Mechanismen für Sitzungen in PHP, nämlich den Standardmechanismus und den benutzerdefinierten Sitzungsverarbeitungsmechanismus.
Der Standardmechanismus
php.ini-Konfiguration:
session.save_handler = files
verwendet Festplattendateien, um PHP-Sitzungen zu implementieren Folgende Es besteht aus mehreren Teilen:
session_start()
session_start() ist der Beginn des Sitzungsmechanismus, der mit einer gewissen Wahrscheinlichkeit die Speicherbereinigung startet. Diese Wahrscheinlichkeit wird basierend auf der Konfiguration von php.ini bestimmt, da in einigen Systemen session.gc_probability = 0 ist, das heißt, die Wahrscheinlichkeit ist 0, dann gibt es keine Speicherbereinigung
Weisen Sie einen Wert zu $_session
Das Hinzufügen eines neuen Werts bleibt nur im Speicher erhalten. Wenn die Skriptausführung endet, schreiben Sie den Wert von $_session in den durch session_id angegebenen Ordner und schließen Sie dann die zugehörigen Ressourcen. In dieser Phase ist es möglich, Vorgänge zum Ändern der Sitzungs-ID durchzuführen, z. B. das Zerstören einer alten Sitzungs-ID und das Generieren einer neuen Sitzungs-ID. Dies wird im Allgemeinen in benutzerdefinierten Sitzungsoperationen
Beispiel verwendet:
if (isset($_COOKIE[session_name()])) { setcookie(session_name(),'',time() -42000,'/');//旧session cookie过期 } session_regenerate_id();//这一步会生成新的session_id //session_id()返回的是新的值
Sitzungsoperation schreiben
im Skript At Am Ende wird der Sitzungsschreibvorgang ausgeführt und der Wert in $_session in die durch session_id benannte Datei geschrieben. Möglicherweise ist er bereits vorhanden und es muss möglicherweise eine neue Datei erstellt werden.
Sitzung zerstören
Von der Sitzung gesendete Cookies sind im Allgemeinen sofortige Cookies, die im Speicher gespeichert werden und ablaufen, wenn der Browser geschlossen wird. Wenn Sie sich jedoch nur abmelden möchten, anstatt den Browser zu schließen, müssen Sie die Sitzung im Code zerstören. Es gibt viele Methoden.
Beispiel:
1. setcookie(session_name(),session_id(),time() -8000000,..);//退出登录前执行 2. usset($_SESSION);//这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。 3. session_destroy();//这个作用更彻底,删除$_SESSION 删除session文件,和session_id
Benutzerdefinierter Sitzungsverarbeitungsmechanismus
php.ini-Konfiguration
session.save_handler = user
Der benutzerdefinierte Verarbeitungsmechanismus kann in die folgenden Teile unterteilt werden
session_start()
Ausführen open( $save_path,$session_name)-Anweisung öffnet das Sitzungsoperationshandle
Führen Sie read($id) aus, um Daten daraus zu lesen
Hinweis: $save_path gibt direkt true zurück in diesem Fall
Skriptausführung endet
Write($id,$sess_data)-Anweisung ausführen
Sitzung zerstören
Es ist zu beachten, dass der Benutzer, wenn er die Sitzung zerstören muss, zuerst „zerstören“ und dann Schritt 2 ausführen muss
Zusammenfassung: Das Obige ist das Ganze Inhalt dieses Artikels, ich hoffe, er wird für alle hilfreich sein.
PHP-Lernthema für chinesische Websites: PHP-Sitzung (einschließlich Bilder, Videos, Fälle)
Das obige ist der detaillierte Inhalt vonSo verstehen Sie den Betriebsmechanismus einer PHP-Sitzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!