Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen und zerstören Sie eine Sitzung in PHP

So löschen und zerstören Sie eine Sitzung in PHP

PHPz
PHPzOriginal
2017-04-26 14:32:2119444Durchsuche

Methoden zum Löschen und Zerstören einer Sitzung in PHP: Nachdem Sie eine Sitzungsvariable verwendet haben, können Sie sie löschen. Wenn Sie eine Antwort abgeschlossen haben, können Sie sie auch zerstören, wenn der Benutzer das Websystem verlassen möchte Es bietet eine Abmeldefunktion, um alles auf dem Server zu zerstören.

So löschen und zerstören Sie eine Sitzung in PHP

Es gibt drei Hauptmethoden zum Löschen einer Sitzung: Löschen einer einzelnen Sitzung, Löschen mehrerer Sitzungen und Beenden der aktuellen Sitzung. Im Folgenden finden Sie drei Möglichkeiten, um eine Sitzung zu löschen einführen.

(1)Eine einzelne Sitzung löschen

Das Löschen einer einzelnen Sitzung bedeutet das Löschen der Variablen einer einzelnen Sitzung, indem Sie sich direkt abmelden Element des $_SESSION-Arrays, also Can.

Zum Beispiel: Variable $_SESSION['user'], Sie können die Funktion unset() verwenden, der Code lautet wie folgt:

unset( $_SESSION['user']);

Hinweis: Bei Verwendung von unset() Funktion, achten Sie auf $ Die Elemente im _SESSION-Array können nicht weggelassen werden, das heißt, die Registrierung des gesamten Arrays kann nicht auf einmal aufgehoben werden. Dadurch wird die Funktion der gesamten Sitzung deaktiviert Zerstören Sie die globale Variable $_SESSION, und es gibt keine Möglichkeit, darauf zu antworten, und der Benutzer kann sich nicht erneut für die Variable $_SESSION registrieren.

Wenn Sie mehrere oder alle Konversationen löschen möchten, können Sie die folgenden zwei Methoden verwenden.

(2)Mehrere Sitzungen löschen

Wenn Sie alle von einem Benutzer in der Sitzung registrierten Variablen löschen möchten, d. h. mehrere Sitzungen löschen und sich abmelden Once Alle Sitzungsvariablen können durch Zuweisen eines leeren Arrays zu $_SESSION implementiert werden. Der Code lautet wie folgt:

$_SESSION = array();

(3) Beenden Sie die aktuelle Sitzung

Wenn die gesamte Sitzung beendet ist, sollten Sie zuerst alle Sitzungsvariablen abmelden und dann die Funktion session_destroy() verwenden, um die aktuelle Sitzung zu löschen und zu beenden, alle Ressourcen in der Sitzung zu löschen und die Sitzung vollständig zu zerstören. Der Code lautet wie folgt:

session_destroy();

Bezogen auf die Funktion session_start() (Sitzungsdatei erstellen) wird die Funktion session_destroy() verwendet, um den Vorgang der Sitzung zu schließen (die Sitzungsdatei zu löschen). Wenn sie erfolgreich ist, gibt sie TRUE zurück Wenn die Sitzungsdaten nicht zerstört werden können, wird FALSE zurückgegeben. Diese Funktion gibt jedoch weder die Variablen frei, die sich auf die aktuelle Sitzung beziehen, noch löscht sie die im Client-Cookie gespeicherte Sitzungs-ID.

Die Standardsitzung von PHP basiert auf einem Cookie. Die Sitzungs-ID wird vom Server im Cookie des Clients gespeichert. Daher müssen Sie beim Abmelden von der Sitzung auch die im Cookie gespeicherte Sitzungs-ID löschen Dies erfordert die Verwendung der Funktion setcookie(). In Cookie ist der Cookie-Identifikationsname, der die Sitzungs-ID speichert, der Name der Sitzung. Dieser Name ist der Wert, der durch das Attribut session.name in php.ini angegeben wird. In einem PHP-Skript kann der Name der Sitzung über die Funktion session_name() abgerufen werden. Löschen Sie die im Client-Cookie gespeicherte Sitzungs-ID.

Die vorherige Erklärung kann zusammenfassen, dass der Lösch- und Abmeldevorgang der Sitzung mehrere Schritte erfordert. Der vollständige Code wird unten anhand eines Beispiels bereitgestellt. Nach der Ausführung des Skripts kann die Sitzung geschlossen werden und alle mit dieser Sitzung verbundenen Ressourcen werden zerstört.

Der Code zum vollständigen Zerstören der Sitzung lautet wie folgt:

<?php
  //开启 Session
  session_start();
  // 删除所有 Session 变量
  $_SESSION = array();
  //判断 cookie 中是否保存 Session ID
   if(isset($_COOKIE[session_name()])){
     setcookie(session_name(),&#39;&#39;,time()-3600, &#39;/&#39;);
  }
  //彻底销毁 Session
  session_destroy();
?>

Hinweis: Wenn $_SESSION = array() zum Löschen des $_SESSION-Arrays verwendet wird, wird dieser Benutzer dies tun Auch auf der Serverseite wird der Inhalt der entsprechenden Sitzungsdatei gelöscht. Bei Verwendung der Funktion session_destroy() wird die diesem Benutzer entsprechende Sitzungsdatei auf der Serverseite gelöscht.

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

Das obige ist der detaillierte Inhalt vonSo löschen und zerstören Sie eine Sitzung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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