Heim  >  Artikel  >  Backend-Entwicklung  >  Sitzungssteuerung in PHP

Sitzungssteuerung in PHP

不言
不言Original
2018-04-09 16:07:251357Durchsuche

Der Inhalt dieses Artikels besteht darin, die Zeichensteuerung in PHP mit Ihnen zu teilen. Freunde in Not können sich darauf beziehen

Sitzungssteuerung

HTTP-Protokoll ist die gegenseitige Kommunikation zwischen WEB-Server und Das Browserprotokoll ist ein zustandsloses Protokoll, d. h. jede HTTP-Anfrage ist unabhängig voneinander. Daher verfügt das HTTP-Protokoll nicht über einen integrierten Mechanismus zur Aufrechterhaltung des Status zwischen zwei Transaktionen. Wenn ein Benutzer beispielsweise eine Seite anfordert und dann eine andere Seite anfordert, kann HTTP uns nicht mitteilen, ob die beiden Anforderungen vom selben Benutzer stammen.

Auf Websites müssen wir häufig eine Variable verfolgen: Durch die Verfolgung von Variablen können wir Verbindungen zwischen mehreren Anforderungsdingen herstellen und dann je nach Autorisierung und Benutzeridentität unterschiedliche Inhalte und unterschiedliche Seiten anzeigen. Dies ist Sitzungskontrolltechnologie.

Häufig verwendete Sitzungskontrolltechniken sind Cookie und Session. Einfach ausgedrückt: Cookie bestimmt die Identität des Benutzers durch die Aufzeichnung von Informationen auf der Clientseite; Session bestimmt die Identität des Benutzers durch die Aufzeichnung von Informationen auf der Serverseite.

Cookie

Cookie ist eine kleine Textdatei, die in der HTTP-Anfragenachricht enthalten ist und zwischen dem Webserver und dem Browser weitergeleitet wird. Das Funktionsprinzip von Cookies ist wie folgt:

  1. Der Server legt ein Set-Cookie-Feld in der HTTP-Antwortnachricht fest und fügt die Cookie-Daten zusammen mit der HTTP-Nachricht in das Feld Set-Cookie ein . Zum Browser;

  2. Nach dem Empfang der HTTP-Antwortnachricht prüft der Browser, ob das Feld Set-Cookie einen Wert hat und erstellt lokal eine Cookie-Datei, um die Daten zu speichern; >

  3. Wenn der Browser erneut eine Anfrage an den Server sendet, durchsucht der Browser zunächst die lokal gespeicherte Cookie-Datei. Wenn in der Cookie-Datei Cookies zu der verknüpften URL vorhanden sind, wird dies der Fall sein in HTTP sein Legen Sie ein Cookie-Feld in der Anforderungsnachricht fest, fügen Sie die Daten in der Cookie-Datei zum Feld hinzu und senden Sie schließlich die HTTP-Anforderungsnachricht mit dem Cookie-Feld an den Server.

Cookies können zum Speichern von Benutzernamen, Passwörtern, personalisierten Einstellungen und anderen einfachen Informationen verwendet werden. Im Folgenden finden Sie Anweisungen zur Verwendung von Cookies:

Erstellen
<?php
setcookie("Cookie", "cookievalue", time()+3600);
setcookie() muss aufgerufen werden, bevor der Inhalt der HTML-Datei ausgegeben wird
Receive
<?php
echo $_COOKIE["Cookie"];
Delete
<?php
#方法一:将值设为空
setcookie("Cookie", null);

#方法二:将过期时间设为过去时间
setcookie("Cookie", "value" , time());
Session

Sitzung Es handelt sich um eine Methode zur Verwaltung von Benutzersitzungsdaten auf der Serverseite. Sie funktioniert wie folgt:

  1. Wenn der Browser zum ersten Mal auf das PHP-Skript zugreift, wird das

    Die Funktion erstellt eine eindeutige Sitzungs-ID (jeder Client verfügt über eine eindeutige Identifikation) und speichert diese Sitzungs-ID automatisch über den HTTP-Antwortheader im Client-Cookie. Gleichzeitig wird auf der Serverseite auch eine Datei mit dem Namen Sitzungs-ID erstellt, um die Sitzungsinformationen des Benutzers zu speichern. seesion_start()

  2. Wenn derselbe Benutzer diese Website erneut besucht, wird sie automatisch weitergeleitet HTTP Der Anforderungsheader bringt die im Cookie gespeicherte Seesion-ID.

  3. Das Server-PHP-Skript empfängt die Client-Anfrage, und dann weist die Funktion

    keine neue Sitzungs-ID zu, sondern um die Sitzungsdatei mit demselben Namen wie die Sitzungs-ID auf der Festplatte des Servers zu finden und die zuvor für diesen Benutzer gespeicherten Sitzungsinformationen auszulesen. session_start()

Zunächst gibt es zwei Möglichkeiten, eine eindeutige Sitzungskennung zu erstellen: über Cookie oder GET. Standardmäßig erstellt PHP bei Verwendung von Session ein Cookie mit dem Namen

(der Wert von session.name kann über php.ini geändert werden. Wenn der Client Cookies deaktiviert, kann er angeben, dass die Sitzungs-ID über übertragen wird). GET (ändern Sie PHPSESSID und andere Parameter in php.ini). Zweitens wird die Sitzung in Form einer Datei gespeichert. Es gibt ein Konfigurationselement session.use_trans_sid in php.ini. Der ausgefüllte Pfad speichert alle Sitzungsdateien. Das Benennungsformat von Sitzungsdateien ist: --session.save_path= "". Jede Datei speichert die Daten einer Sitzung. Schließlich werden die in der Sitzungsdatei gespeicherten Daten serialisiert, z. B.: sess_[PHPSESSID的值]

cityID|i:0;cityName|s:3:"all";fanwe_lang|s:5:"zh-cn";fanwe_currency|a:4:{s:2:"id";s:1:"1";s:6:"name_1";s:9:"人民币";s:4:"unit";s:3:"¥";s:5:"radio";s:6:"1.0000";}_fanwe_hash__|s:32:"77c18770c6cb5d89444c407aaa3e8477";
Sitzung kann auch zum Speichern einiger einfacher Informationen wie Benutzername, Kennwort, personalisierte Einstellungen usw. verwendet werden. Das Folgende ist Sitzung Gebrauchsanweisung:

Erstellen
//启动 session
session_start();

//注册session变量,赋值为一个用户的名称
$_SESSION["username"] = "jochen";

//注册session变量,赋值为一个用户的ID
$_SESSION["uid"] = 1;
Hinweis: session_start() muss aufgerufen werden, bevor der Inhalt der HTML-Datei ausgegeben wird
Lesen
<?php
session_start();
echo $_SESSION["username"]; # # jochen
echo $_SESSION["uid"];      # 1
Zerstören
<?php
session_start();
 
unset($_SESSION["username"]);
unset($_SESSION["uid"]);
Es ist zu beachten, dass bei vielen Sitzungsdateien Probleme mit der I/Q-Lese- und Schreibleistung auftreten. Derzeit können Caching-Systeme wie Memcached und Redis verwendet werden.
Verwandte Empfehlungen:

Arrays für PHP-Lernen


Das obige ist der detaillierte Inhalt vonSitzungssteuerung 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
Vorheriger Artikel:PHP-LernfunktionNächster Artikel:PHP-Lernfunktion