Heim > Artikel > Backend-Entwicklung > PHP-Sitzungssteuerung
Der in diesem Artikel vorgestellte Inhalt ist die PHP-Sitzungskontrolle. Jetzt kann ich ihn mit allen teilen. Freunde in Not können sich darauf beziehen
Das HTTP-Protokoll ist ein Protokoll für die gegenseitige Kommunikation zwischen WEB-Servern und Browsern. Es ist ein zustandsloses Protokoll, das heißt, 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 Sitzungssteuerungstechnologien 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 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:
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;
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; >
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 im Zusammenhang mit der verknüpften URL vorhanden sind, wird dies der Fall sein in HTTP 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:
<?phpsetcookie("Cookie", "cookievalue", time()+3600);
setcookie() muss aufgerufen werden, bevor der Inhalt der HTML-Datei ausgegeben wird
<?phpecho $_COOKIE["Cookie"];
<?php#方法一:将值设为空setcookie("Cookie", null);#方法二:将过期时间设为过去时间setcookie("Cookie", "value" , time());
Verwandtes Lernen Empfehlungen: PHP-Cookie(Sonderthema)
Sitzung ist eine Methode zur Verwaltung von Benutzersitzungsdaten auf der Serverseite. Sie funktioniert wie folgt:
Wenn der Browser zum ersten Mal auf das PHP-Skript zugreift, erstellt die Funktion seesion_start()
eine eindeutige Sitzungs-ID (jeder Client hat eine eindeutige Kennung) und übergibt automatisch die HTTP-Antwort Header: Speichern Sie diese Sitzungs-ID im Client-Cookie. Gleichzeitig wird auf der Serverseite auch eine Datei mit dem Namen Sitzungs-ID erstellt, um die Sitzungsinformationen des Benutzers zu speichern.
Wenn derselbe Benutzer diese Website erneut besucht, wird sie automatisch weitergeleitet HTTP Der Anforderungsheader bringt die im Cookie gespeicherte Seesion-ID.
Das Server-PHP-Skript empfängt die Client-Anfrage, und dann weist die Funktion session_start()
keine neue Sitzungs-ID zu. sondern 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 唯一标识的方法有两种:通过 Cookie 或者 GET 方式。PHP 在默认情况下使用 Session 会建立一个名叫PHPSESSID
的 Cookie(可以通过 php.ini 修改 session.name 的值),如果客户端禁用cookie,可以指定通过 GET 方式把 Session ID 传到服务器(修改 php.ini 中 session.use_trans_sid
等参数)。其次,Session 是以文件的形式保存的。php.ini 中有个配置项 --session.save_path= ""
,这个里面填写的路径,将会保存所有 Session 文件。Session 文件的命名格式是:sess_[PHPSESSID的值]
。每一个文件,里面保存了一个会话的数据。最后,保存在 Session 文件中的数据是经过序列化处理的,比如:
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";
Session 同样可以用来保存用户名、密码、个性化设置等一些简单的信息,以下是 Session 的使用说明:
//启动 sessionsession_start();//注册session变量,赋值为一个用户的名称$_SESSION["username"] = "jochen";//注册session变量,赋值为一个用户的ID$_SESSION["uid"] = 1;
注意:必须在 HTML 文件的内容输出之前调用 session_start()
<?phpsession_start();echo $_SESSION["username"]; # # jochenecho $_SESSION["uid"]; # 1
<?phpsession_start(); unset($_SESSION["username"]);unset($_SESSION["uid"]);
需要注意的是,当 session 文件比较多的情况下,将会产生 I/Q 读写性能问题。此时可以采用 memcached、redis 等缓存系统。
相关学习推荐:php session(专题)
相关推荐:
Das obige ist der detaillierte Inhalt vonPHP-Sitzungssteuerung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!