So schreiben Sie den Sitzungsspeichermechanismus in PHP neu

不言
Freigeben: 2023-04-03 06:02:01
Original
3280 Leute haben es durchsucht

So schreiben Sie den Sitzungsspeichermechanismus in PHP neu

Dieser Artikel stellt hauptsächlich vor, wie man den Sitzungsspeichermechanismus in PHP umschreibt. Jetzt kann ich ihn mit Ihnen teilen.

Sitzungsdatenbereich

wird standardmäßig im temporären Verzeichnis des Server-Betriebssystems in Form einer Datei gespeichert!

Wenn zu viele Sitzungsdatenbereiche vorhanden sind, verlangsamt die Speicherung in Form von Dateien den Vorgang. Der Overhead beim Lesen und Schreiben der Festplatte (E/A, Eingabe/Ausgabe) ist sehr hoch.

In tatsächlichen Projekten werden andere Methoden verwendet, um Sitzungsdaten schneller zu speichern. Typische Methoden: Datenbank, Speicher.

Nehmen Sie zur Erläuterung die Datenbankspeicherung: Sitzungsdaten werden in der Datenbank gespeichert!

Schreiben Sie einfach die Operationen um, die sich direkt auf den Sitzungsdatenbereich beziehen:

Die grundlegendsten sind nur 2: Lesen und Schreiben!

1: Definieren Sie zwei Funktionen, die das Lesen und Schreiben abschließen können.

Zweitens: Informieren Sie den Sitzungsmechanismus, benutzerdefinierte Lese- und Schreibfunktionen zu verwenden, wenn Lesen und Schreiben erforderlich sind.

Empfehlungen zu verwandten Themen: PHP-Sitzung (einschließlich Bilder, Videos, Fälle)

Definition 2 (eigentlich insgesamt von 6 erforderlichen verwandten Funktionen) Funktionen, die das Lesen und Schreiben vervollständigen können

Informieren Sitzungsmechanismus, Wenn lesen und schreiben muss, verwendet benutzerdefinierte Lese- und Schreibfunktionen, um

Session_set_save_handler(
开始函数,结束函数,读函数,写函数,删除函数,GC函数
);
Nach dem Login kopieren
Wird verwendet, um benutzerdefinierte Funktionen als sitzungsspeicherbezogene Funktionen festzulegen.

Die obige Syntax ist nur eine Einstellungsbenachrichtigung und ruft nicht die oben genannten 6 Funktionen auf. Diese sechs Funktionen werden nur verwendet, wenn der Sitzungsmechanismus zu einem bestimmten Zeitpunkt ausgeführt wird. Anruf! Wenn Sie beispielsweise eine Sitzung öffnen, müssen Sie nur sessRead() aufrufen

Allgemeine Verwendung der Sitzung

Mechanismus zum Öffnen einer Sitzung

Betrieb

$_SESSION

Sitzungstabelle erstellen

In dieser Sitzung ist jeder Datensatz ein Sitzungsdatenbereich, der einer ursprünglichen Sitzungsdatei entspricht.

Tabellenstruktur:

Lesevorgang: sessRead()

Wer ruft an , der die Informationen weitergegeben hat!

Wenn der Sitzungsmechanismus von PHP diese Funktion aufruft, wird die aktuelle Sitzungs-ID als Parameter an die Funktion übergeben:

Daher muss ein formaler Parameter angegeben werden, um die übergebene Sitzung zu akzeptieren. ID. Parameter:

muss die gelesene Sitzungsdatenzeichenfolge zurückgeben. Es ist der Inhalt des Feldes sess_content. Wenn es nicht gelesen wird, geben Sie einfach eine leere Zeichenfolge zurück, um anzuzeigen, dass keine Sitzungsdaten vorhanden sind.

Schreibvorgang: sessWrite()

Wenn der PHPsession-Mechanismus diese Funktion aufruft, um einen Schreibvorgang durchzuführen Operation, Die aktuelle Session-ID und der zu schreibende (serialisierte) Inhalt werden an die Funktion übergeben!

erfordert 2 formale Parameter zum Empfangen:

Test:

Löschvorgang: sessDelete()

Beim Zerstören der Sitzung.

hat die PHP-Funktion ausgeführt:

Session_destroy();

kann die Sitzung zerstören, den entsprechenden Sitzungsdatenbereich löschen und gleichzeitig den Sitzungsmechanismus schließen!

Da der Sitzungsdatenbereich gelöscht werden muss, muss eine Methode zum Löschen hinzugefügt werden:

Der Sitzungsmechanismus von PHP übergibt die aktuelle Sitzung, wenn Aufruf von sessDelete -ID als Parameter:

Es müssen formale Parameter definiert werden, um zu empfangen:

Garbage-Collection-Vorgang: sessGC()

Müll: Veralteter Sitzungsdatenbereich auf dem Server. ,

Wie erkennt man Müll?

Wenn ein Sitzungsdatenbereich länger als einen bestimmten Zeitraum (der letzte Schreibvorgang) nicht verwendet wurde, wird er als Mülldaten betrachtet.

Der zeitkritische Punkt: Standard 1440s. Konfigurierbar:

Mit der letzten Schreibzeit können Sie feststellen, ob es sich um Müll handelt

Sie müssen ein Feld hinzufügen, um die letzte Schreibzeit aufzuzeichnen.

Aktualisieren Sie beim Schreiben dieses Feld:

sessWrite();

Urteilsbedingung: Abgelaufen

Last_write < Aktuelle Zeit -1440

Wie lösche ich?

Während des session_start()-Prozesses, wenn der Sitzungsmechanismus aktiviert ist: Es besteht die Möglichkeit, Garbage-Collection-Vorgänge durchzuführen. Nach der Ausführung werden alle abgelaufenen Garbage-Data-Bereiche gelöscht.

Die Standardwahrscheinlichkeit beträgt 1/1000.

Sie können die Wahrscheinlichkeit einstellen:

Möglichkeit:

Basis (Divisor):

Wahrscheinlichkeitstest anpassen:

Es wird empfohlen, die Anpassung während des Skriptzyklus durchzuführen, die Funktion ini_set() zu verwenden und sie abzuschließen, bevor der Sitzungsmechanismus geöffnet wird:

Implementierung sessGC()

Der Sitzungsmechanismus von PHP übergibt die maximale Gültigkeitsdauer als Parameter!

Betrieb startensessBegin():

Initialisierungsarbeiten

werden garantiert zuerst ausgeführt. Vervollständigen Sie den anfänglichen Code in sessBegin:

Initialisieren Sie beispielsweise die Datenbankverbindung:

Endvorgang sessEnd():

Abschlussarbeit

True zurückgeben;

Syntaxdetails

Zuerst festlegen, bevor der Sitzungsmechanismus geöffnet wird

Session_set_save_handler() steht vor session_start ( ) heißt.

Sitzung nicht automatisch öffnen! php.ini: session.auto_start = 0

PHPKonfigurationselement: session.save_handler

wird vom PHP-Speicher verwendet Mechanismus:

Abschließend wird empfohlen, die obige Konfiguration auf Benutzer zu ändern: Dies zeigt die Benutzeranpassung an!

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So durchsuchen Sie Ordner, um den Bildverzeichnisnamen und den Dateinamen über PHP zu erhalten

Anleitung Lösen Sie das PHP-Array-Referenzproblem, das nach jeder foreach-Schleife übrig bleibt

Das obige ist der detaillierte Inhalt vonSo schreiben Sie den Sitzungsspeichermechanismus in PHP neu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
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