Hinweis 017 Funktion session_set_save_handler() in PHP

黄舟
Freigeben: 2023-03-04 09:20:01
Original
1654 Leute haben es durchsucht

Funktionsbeschreibung

Die Funktion session_set_save_handler wird zum Festlegen des benutzerdefinierten Sitzungsspeichers verwendet.

Wenn Sie andere Methoden als den in PHP integrierten Sitzungsspeichermechanismus verwenden möchten, können Sie diese Funktion verwenden. Beispielsweise können Sie die Sitzungsspeicherfunktion anpassen, um Sitzungsdaten in einer Datenbank zu speichern.

Verwendung

bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc [, callable $create_sid ] )

Ab der PHP 5.4-Version können Sie einfachere Parameter direkt verwenden, um Sitzungsspeichereinstellungen anzupassen:

bool session_set_save_handler ( SessionHandlerInterface $sessionhandler [, bool $register_shutdown = true ] )

Parameterbeschreibung

Dieser Parameter hat zwei Prototypen:

Der erste Prototyp (verfügbar für PHP 5.4+ Version) ist:

sessionhandler

implementiert das SessionHandlerInterface-Schnittstellenobjekt, Sie Sie können dieses Objekt anpassen oder den offiziell bereitgestellten SessionHandler

register_shundown

verwenden, um die Funktion session_write_close() als Funktion register_shutdown_function() zu registrieren.

Der zweite Prototyp ist:

open(string $savePath, string $sessionName)

open Die Rückruffunktion ähnelt dem Konstruktor der Klasse. Sie wird geöffnet wenn die Sitzung aufgerufen wird. Dies ist die erste Rückruffunktion, die nach dem automatischen oder manuellen Starten einer Sitzung durch Aufruf von session_start() aufgerufen wird. Diese Rückruffunktion gibt „true“ zurück, wenn die Operation erfolgreich ist, andernfalls gibt sie „false“ zurück.

close()

Die Close-Callback-Funktion ähnelt dem Destruktor einer Klasse. Wird aufgerufen, nachdem die Write-Callback-Funktion aufgerufen wurde. Wenn die Funktion session_write_close() aufgerufen wird, wird auch die Rückruffunktion close aufgerufen. Diese Rückruffunktion gibt „true“ zurück, wenn die Operation erfolgreich ist, andernfalls gibt sie „false“ zurück.

read(string $sessionId)

Wenn Daten in der Sitzung vorhanden sind, muss die Leserückruffunktion eine Zeichenfolge zurückgeben, die die Sitzungsdaten codiert (serialisiert). Wenn in der Sitzung keine Daten vorhanden sind, gibt die Leserückruffunktion eine leere Zeichenfolge zurück.

Nachdem die Sitzung automatisch oder manuell durch Aufrufen der Funktion session_start() gestartet wurde, ruft PHP intern die Leserückruffunktion auf, um die Sitzungsdaten abzurufen. Vor dem Aufruf von read ruft PHP die Open-Callback-Funktion auf.

Das vom Leserückruf zurückgegebene serialisierte Zeichenfolgenformat muss genau mit dem Format übereinstimmen, wenn die Schreibrückruffunktion die Daten speichert. PHP deserialisiert automatisch die zurückgegebene Zeichenfolge und füllt die superglobale Variable $_SESSION. Obwohl die Daten der Funktion serialize() sehr ähnlich sehen, ist es wichtig, sich daran zu erinnern, dass sie unterschiedlich sind.

write(string $sessionId, string $data)

Die Write-Callback-Funktion wird aufgerufen, wenn die Sitzung Daten speichert. Diese Callback-Funktion erhält als Parameter die aktuelle Session-ID und den String nach der Serialisierung der Daten in $_SESSION. Der Prozess der Serialisierung von Sitzungsdaten wird von PHP gemäß dem Einstellungswert session.serialize_handler abgeschlossen.

Die serialisierten Daten werden mit der Sitzungs-ID verknüpft und gespeichert. Beim Aufrufen der Leserückruffunktion zum Abrufen von Daten müssen die zurückgegebenen Daten vollständig mit den an die Schreibrückruffunktion übergebenen Daten übereinstimmen.

PHP ruft diese Rückruffunktion auf, nachdem das Skript ausgeführt oder die Funktion session_write_close() aufgerufen wurde. Beachten Sie, dass PHP nach dem Aufruf dieser Rückruffunktion intern die Rückruffunktion zum Schließen aufruft.

Hinweis:

PHP ruft die Write-Callback-Funktion erst auf, wenn der Ausgabestream geschrieben und geschlossen ist, sodass die Debugging-Informationen in der Write-Callback-Funktion nicht an den Browser ausgegeben werden. Wenn Sie die Debug-Ausgabe in der Callback-Funktion schreiben müssen, wird empfohlen, die Debug-Ausgabe in eine Datei zu schreiben.

destroy($sessionId)

Diese Rückruffunktion wird aufgerufen, wenn die Funktion session_destroy() oder die Funktion session_regenerate_id() aufgerufen wird und der Parameter destroy auf true gesetzt ist. Diese Rückruffunktion gibt „true“ zurück, wenn die Operation erfolgreich ist, andernfalls gibt sie „false“ zurück.

gc($lifetime)

Um alte Daten in der Sitzung zu bereinigen, ruft PHP von Zeit zu Zeit die Rückruffunktion der Garbage Collection auf. Der Aufrufzyklus wird durch die Parameter session.gc_probability und session.gc_divisor gesteuert. Der an diese Rückruffunktion übergebene Lebensdauerparameter wird von session.gc_maxlifetime festgelegt. Diese Rückruffunktion gibt „true“ zurück, wenn die Operation erfolgreich ist, andernfalls gibt sie „false“ zurück.

create_sid()

Rückruffunktion wird aufgerufen, wenn eine neue Sitzungs-ID erforderlich ist. Die Rückruffunktion wird ohne übergebene Parameter aufgerufen und ihr Rückgabewert sollte eine gültige Sitzungs-ID im String-Format sein.

Rückgabewert

Gibt bei Erfolg „true“ zurück und bei einem Fehler „false“.

Das Obige ist der Inhalt der Funktion session_set_save_handler() in Hinweis 017 PHP. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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