Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie die Funktion Session_register_Shutdown, um die Sitzungsdaten sicher zu speichern, nachdem die Benutzerseite geschlossen wurde?

So verwenden Sie die Funktion Session_register_Shutdown, um die Sitzungsdaten sicher zu speichern, nachdem die Benutzerseite geschlossen wurde?

M66 2025-06-23

Beim Erstellen von Webanwendungen mit PHP ist das Verwalten und Speichern von Sitzungsdaten ein kritischer Teil. Normalerweise hoffen wir, dass auch wenn der Benutzer den Browser oder die Seite schließt, die Sitzungsdaten dennoch ordnungsgemäß gespeichert werden können, um die Konsistenz und Sicherheit der Daten zu gewährleisten. Die Funktion Session_register_Shutdown () ist ein Tool, das zu diesem Zweck vorhanden ist.

Was ist Session_register_Shutdown?

Session_register_Shutdown () ist eine integrierte Funktion, die von PHP bereitgestellt wird, um automatisch Session_write_close () zu rufen, wenn das Skript ausgeführt wird. Dies stellt sicher, dass die aktuellen Sitzungsdaten sicher auf den Server geschrieben werden können, unabhängig davon, ob das Skript normal endet oder unerwartet abgebrochen wird.

Standardmäßig speichert PHP automatisch Sitzungsdaten, nachdem das Skript ausgeführt wurde. In einigen Fällen, z. B. wenn Register_Shutdown_Function () aktiviert ist und Sitzungsvorgänge in sie aufgerufen werden oder wenn das Skriptfunktionen wie exit () und Die () in der Mitte die Sitzungsdaten möglicherweise nicht korrekt gespeichert werden. Es ist besonders wichtig, Session_register_Shutdown () zu diesem Zeitpunkt zu verwenden.

Wie benutze ich es?

Es ist sehr einfach zu bedienen. Sie müssen nur nach dem Aufrufen von Session_Start () Session_register_Shutdown () aufrufen:

 <?php
session_start();
session_register_shutdown();

// Beispiel:Erhöhen Sie Benutzerbesuche
if (!isset($_SESSION['views'])) {
    $_SESSION['views'] = 1;
} else {
    $_SESSION['views']++;
}

echo "Du bist der erste {$_SESSION['views']} Besuchen Sie diese Seite diesmal。";
?>

Der obige Code stellt sicher, dass die Sitzungsdaten unabhängig von der Schließung der Seite gespeichert werden können (normale Schließen, abnormale Beendigung usw.).

So registrieren Sie eine benutzerdefinierte Herunterfahrenfunktion

In einigen erweiterten Szenarien können Sie benutzerdefinierte Abschaltfunktionen registrieren, z. B. die Protokollierung von Benutzerverhalten oder Reinigungsressourcen. Zu diesem Zeitpunkt kann das Aufrufen von Session_register_Shutdown () mit register_shutdown_function () zusammenarbeiten, um den Sitzungsverlust zu verhindern.

 <?php
session_start();
session_register_shutdown();

register_shutdown_function(function () {
    // Protokollierungsprotokolle auf dem Remote -Server
    file_get_contents("https://m66.net/log?uid=" . urlencode($_SESSION['user_id']));
});

// Normal session Logik
$_SESSION['last_action'] = time();
?>

Wie oben gezeigt, wird der Aktionsdatensatz des Benutzers an https://m66.net/log gesendet, um das letzte Verhalten des Benutzers vor dem Schließen der Seite zu erfassen.

Dinge zu beachten

  1. Session_register_Shutdown () ist nur dann gültig, wenn die Sitzung aktiviert ist. Rufen Sie daher nach Session_Start () an.

  2. Es wird nicht empfohlen, Sitzungsdaten in der Herunterfahrenfunktion zu ändern. Die Abschaltphase eignet sich hauptsächlich zum Lesen oder Schreiben von externen Ressourcen.

  3. Diese Funktion ist in PHP 7+ -Versionen gültig, die in früheren Versionen möglicherweise nicht verfügbar waren.

Abschluss

Session_register_Shutdown () ist eine einfache, aber äußerst praktische Funktion, die für Anwendungsszenarien mit hohen Anforderungen an die Datenkonsistenz geeignet ist. Durch die korrekte Verwendung von Sitzungsdatenverlustproblemen, die durch versehentliche Seitenverschlüsse verursacht werden, können effektiv vermieden werden, wodurch die Benutzererfahrung und die Robustheit der Systeme verbessert werden.