Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

藏色散人
Freigeben: 2023-04-08 10:04:01
nach vorne
3147 Leute haben es durchsucht

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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. Der folgende Artikel vermittelt Ihnen die Grundkenntnisse der Sitzungsverarbeitung in PHP. Ich hoffe, er wird Ihnen hilfreich sein.

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.

Die folgende Abbildung beschreibt kurz das HTTP-Protokoll.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

Wichtig ist, dass die session_start-Funktion 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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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

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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

Wie oben gezeigt, verwenden wir die Funktion session_start, um eine Sitzung am Anfang des Skripts zu starten. Anschließend initialisieren wir mehrere Sitzungsvariablen. Schließlich verwenden wir den superglobalen $_SESSION-Zugriff auf diese Variablen.

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.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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:

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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

5. Sitzung zerstören

Oben wissen wir, dass wir die Funktion „Unset“ verwenden können, um bestimmte Sitzungsvariablen zu löschen einmal, wir Was tun?

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

Sehen wir uns an, wie die Funktion session_destroy funktioniert.

Sitzungsverarbeitung in PHP (detaillierte Code-Erklärung)

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 verwendet, wenn sich der Benutzer abmeldet

Weitere verwandte PHP-Kenntnisse finden Sie im PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonSitzungsverarbeitung in PHP (detaillierte Code-Erklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!