Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse der PHP-Sitzungsverarbeitung

Analyse der PHP-Sitzungsverarbeitung

王林
王林nach vorne
2020-01-06 17:57:023095Durchsuche

Analyse der PHP-Sitzungsverarbeitung

Das Sitzungshandling ist ein sehr wichtiges Konzept in PHP, das es ermöglicht, dass Benutzerinformationen auf allen Seiten einer Website oder Anwendung unverändert bleiben.

Was ist eine Sitzung in PHP?

Eine Sitzung ist ein Mechanismus zum Speichern von Informationen auf verschiedenen Webseiten, um Benutzer zu identifizieren, während sie eine Website oder Anwendung durchsuchen.

Jeder muss sich diese Frage stellen: Warum braucht die Website Sitzungen? Bevor wir dieses Problem besprechen, müssen wir noch einmal einen Blick auf die Funktionsweise des HTTP-Protokolls werfen.

Das HTTP-Protokoll ist ein zustandsloses Protokoll, was bedeutet, dass sich der Server zwischen Anfragen nicht an einen bestimmten Benutzer erinnern kann. Wenn Sie beispielsweise eine Webseite besuchen, ist der Server nur für die Bereitstellung des Inhalts der angeforderten Seite verantwortlich. Wenn Sie also andere Seiten derselben Website besuchen, interpretiert der Webserver jede Anfrage einzeln, als hätten sie nichts miteinander zu tun. Der Server kann nicht erkennen, dass jede Anfrage vom selben Benutzer stammt.

(Kostenloses Lernvideo-Tutorial: PHP-Video-Tutorial)

Die folgende Abbildung beschreibt kurz das HTTP-Protokoll.

Analyse der PHP-Sitzungsverarbeitung

Wenn Sie in diesem Prozess die Informationen eines bestimmten Benutzers anzeigen möchten, müssen Sie den Benutzer bei jeder Anfrage authentifizieren. Stellen Sie sich vor, Sie müssten bei jeder Anfrage Ihren Benutzernamen und Ihr Passwort auf der Seite eingeben, um sich zu authentifizieren. Das wäre zu mühsam und überhaupt nicht praktikabel. Allerdings ist die Sitzung zu diesem Zeitpunkt praktisch.

Eine Sitzung ermöglicht es Benutzern, Informationen über verschiedene Seiten einer einzelnen Website oder Anwendung hinweg auszutauschen, was zur Aufrechterhaltung des Status beiträgt. Dadurch weiß der Server, dass alle Anfragen von demselben Benutzer stammen, sodass die Site benutzerspezifische Informationen und Präferenzen anzeigen kann.

Das folgende Diagramm beschreibt, wie das HTTP-Protokoll mit Sitzungen verwendet wird.

Analyse der PHP-Sitzungsverarbeitung

Wie geht PHP mit Sitzungen um?

1. Starten Sie die Sitzung

Wenn Sie Sitzungsvariablen verarbeiten möchten, müssen Sie sicherstellen, dass die Sitzung gestartet wurde. Es gibt mehrere Möglichkeiten, eine Sitzung in PHP zu starten.

1), verwenden Sie die Funktion „session_start“

Dies ist die gebräuchlichste Methode, bei der die Sitzung durch die Funktion „session_start“ gestartet wird.

Analyse der PHP-Sitzungsverarbeitung

Wichtig ist, dass die Funktion session_start am Anfang des Skripts aufgerufen werden muss, bevor eine Ausgabe an den Browser gesendet wird. Andernfalls werden Sie auf den berüchtigten Fehler „Header wurden bereits gesendet“ stoßen.

2), Sitzung automatisch starten

Wenn Sie die Sitzung in der gesamten Anwendung verwenden müssen, können Sie die Sitzung auch automatisch starten, ohne die Funktion session_start zu verwenden.

Es gibt eine Konfigurationsoption session.auto_start in der php.ini-Datei, die es uns ermöglicht, für jede Anfrage automatisch eine Sitzung zu starten. Standardmäßig ist es auf 0 eingestellt, wir können es auf 1 setzen, um die Autostart-Funktion zu aktivieren.

Analyse der PHP-Sitzungsverarbeitung

2. Holen Sie sich die Sitzungs-ID

Der Server erstellt eine eindeutige ID für jede neue Sitzung. Wenn Sie die Sitzungs-ID erhalten möchten, können Sie die Funktion session_id verwenden, wie im folgenden Snippet gezeigt.

Analyse der PHP-Sitzungsverarbeitung

Dies sollte Ihnen die aktuelle Sitzungs-ID geben. Die Funktion session_id ist interessant, weil sie auch einen Parameter annehmen kann – eine Sitzungs-ID. Wenn Sie die vom System generierte Sitzungs-ID durch Ihre eigene ersetzen möchten, können Sie sie im ersten Parameter der Funktion session_id angeben.

Analyse der PHP-Sitzungsverarbeitung

Es ist wichtig zu beachten, dass, wenn Sie eine Sitzung mit einer benutzerdefinierten Sitzungs-ID starten möchten, die Funktion session_id vor session_start aufgerufen werden muss.

3. Sitzungsvariablen erstellen

Sobald die Sitzung gestartet ist, initialisiert $_SESSION das superglobale Array mit den entsprechenden Sitzungsinformationen. Standardmäßig wird es mit einem leeren Array initialisiert. Sie können Schlüssel-Wert-Paare verwenden, um weitere Informationen zu speichern.

Sehen wir uns anhand von Codebeispielen an, wie Sitzungsvariablen initialisiert werden.

Analyse der PHP-Sitzungsverarbeitung

Wie oben gezeigt, verwenden wir die Funktion session_start, um eine Sitzung am Anfang des Skripts zu starten. Anschließend initialisieren wir mehrere Sitzungsvariablen _SESSION superglobal, um auf diese Variablen zuzugreifen.

Wenn Sie den Superglobal $_SESSION zum Speichern von Daten in einer Sitzung verwenden, werden diese letztendlich in der entsprechenden Sitzungsdatei auf dem Server gespeichert, die beim Start der Sitzung erstellt wird. Auf diese Weise werden Sitzungsdaten über mehrere Anfragen hinweg gemeinsam genutzt.

Wie bereits erwähnt, werden Sitzungsinformationen zwischen Anfragen ausgetauscht, sodass auf einer Seite initialisierte Sitzungsvariablen auch von anderen Seiten aus zugänglich sind, bis die Sitzung abläuft. Normalerweise läuft die Sitzung ab, wenn der Browser geschlossen wird.

4. Sitzungsvariablen ändern und löschen

Wir können zuvor in der Anwendung erstellte Sitzungsvariablen genauso ändern oder löschen wie normale PHP-Variablen.

Nehmen wir ein Beispiel, um zu sehen, wie Sitzungsvariablen geändert werden.

Analyse der PHP-Sitzungsverarbeitung

Im obigen Skript prüfen wir zunächst, ob die Variable $_session['count'] gesetzt ist. Wenn es nicht gesetzt ist, setzen wir es auf 1, andernfalls erhöhen wir es um 1. Wenn Sie diese Seite also mehrmals aktualisieren, können Sie sehen, wie sich der Zähler jedes Mal um eins erhöht!

Wenn Sie andererseits die Sitzungsvariable löschen möchten, können Sie die Unset-Funktion verwenden, wie im folgenden Snippet gezeigt:

Analyse der PHP-Sitzungsverarbeitung

In Auf diese Weise können wir nicht erneut auf die Variable $_SESSION['logged_in_user_id'] zugreifen. Weil es durch die Unset-Funktion gelöscht wurde.

5. Zerstören Sie die Sitzung

Wir wissen oben, dass wir die Unset-Funktion verwenden können, um bestimmte Sitzungsvariablen zu löschen ?

Es ist eigentlich ganz einfach, wir können die Funktion session_destroy verwenden.

Sehen wir uns an, wie die Funktion session_destroy funktioniert.

Analyse der PHP-Sitzungsverarbeitung

Beschreibung: Die Funktion session_destroy löscht alle in der aktuellen Sitzung gespeicherten Inhalte. Wenn daher die auf der Festplatte gespeicherten Sitzungsdaten durch die Funktion session_destroy gelöscht werden, sehen wir bei nachfolgenden Anfragen eine leere Sitzungsvariable.

Hinweis: Normalerweise wird die Funktion session_destroy nur verwendet, wenn sich der Benutzer abmeldet

Empfohlene Tutorials zu verwandten Artikeln: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonAnalyse der PHP-Sitzungsverarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen