PHP-Sitzung (Thema)
Zu den PHP-Sitzungsthemen gehören PHP-Sitzungskonzepte, grundlegende Funktionsnutzung, PHP-Sitzungsanwendungsfälle, PHP-Sitzungsvideo-Tutorials und verwandte ausgewählte Artikel. Willkommen zum Lernen!
1: Was ist eine PHP-Sitzung?
Offizielle Erklärung: Der Sitzungsmechanismus (Session
) wird in PHP verwendet, um relevante Daten zu verwalten, wenn Benutzer kontinuierlich auf Webanwendungen zugreifen. Dies hilft dabei, hochgradig angepasste Programme zu erstellen und die Attraktivität von Websites zu erhöhen.
Um zu verstehen, was eine PHP-Sitzung ist, müssen Sie zunächst den Sitzungsmechanismus verstehen
Sitzungsmechanismus
HTTP basiert auf einem verbindungslosen Netzwerkprotokoll . Ein Besuch ist für den Server völlig neu.
Wenn Sie sich den Besucher merken und den Verbindungsstatus erfassen, können Sie das Benutzererlebnis verbessern und viele personalisierte Funktionen wie Benutzeranmeldung, Warenkorb usw. ausführen.
Tatsächlich ist die Art und Weise, wie sich der Server an den Benutzer erinnert, sehr einfach, genau wie im Leben beantragen wir Mitgliedskarten.
Es gibt zwei Orte, an denen die Mitgliedskarte gespeichert wird, entweder auf Sie oder werden auf dem Computer des Händlers gespeichert
Daher werden Benutzerinformationen im Netzwerk auch an zwei Orten gespeichert: dem Browser (Client) und dem Server
Was im Browser gespeichert wird, wird aufgerufen : Cookie
Das Speichern auf dem Server heißt: Sitzung
Erweitertes Wissen: Der Unterschied zwischen Sitzung und Cookie in PHP
Verwandte Themen: PHP-Cookie(Grafikthema)
Wichtige Punkte der PHP-Sitzung
Speichern auf der Serverseite
Variable: $_SESSION
Variablenfilter: filter_input(INPUT_SESSION, Schlüssel)
Einstellen mit dedizierte Funktion: setcookie(name, value, expiration time)
muss in zwei Schritten abgeschlossen werden, um wirksam zu werden: Geben Sie zuerst den Befehl an den Browser aus, und dann vervollständigt der Browser das Cookie Schreiben
Zwei: Einführung in die Grundfunktionen der PHP-Sitzung
1.session_create_id
Erstellen Sie eine neue Sitzungs-ID
session_create_id ([ string $prefix ] ) : string
Parameter
Präfix: Wenn ein Präfix angegeben ist, wird der neuen Sitzungs-ID ein Präfix vorangestellt. In der Sitzungs-ID sind nicht alle Zeichen zulässig. Erlaubt sind Zeichen im Bereich a-z a-z 0-9, , (Komma) und - (Minuszeichen).
Rückgabewert
Gibt die neue konfliktfreie Sitzungs-ID der aktuellen Sitzung zurück. Wenn es ohne aktive Sitzung verwendet wird, wird die Konfliktprüfung ignoriert.
2.session_destroy
Alle Daten in einer Sitzung zerstören
session_destroy ( void ) : bool
Rückgabewert
Gib TRUE zurück, wenn erfolgreich, oder wenn Returns FALSE bei Fehler.
3.session_id
Aktuelle Sitzungs-ID abrufen/festlegen
session_id ([ string $id ] ) : string
Parameter
id: Wenn der Wert des Parameters id angegeben ist, wird der angegebene Wert als Sitzungs-ID verwendet. Die Funktion session_id() muss vor dem Aufruf der Funktion session_start() aufgerufen werden. Verschiedene Sitzungsmanager haben unterschiedliche Einschränkungen hinsichtlich der Zeichen, die in Sitzungs-IDs verwendet werden können. Beispielsweise erlaubt der Dateisitzungsmanager nur die folgenden Zeichen in Sitzungs-IDs: a-z A-Z 0-9 , (Komma) und - (Minuszeichen)
Rückgabewert
Aktuelle Sitzungs-ID zurückgeben. Wenn keine aktuelle Sitzung vorhanden ist, wird eine leere Zeichenfolge ("") zurückgegeben.
4.session_name
Sitzungsnamen lesen/festlegen
session_name ([ string $name ] ) : string
Parameter
Name: Sitzung verwenden Name im Cookie oder in der URL, zum Beispiel: PHPSESSID. Als Sitzungsname können nur Buchstaben und Zahlen verwendet werden. Es wird empfohlen, dass er so kurz wie möglich und aussagekräftig ist (für Benutzer, die Cookie-Warnungen aktiviert haben, ist es für sie einfacher zu entscheiden, ob sie dieses Cookie zulassen möchten). ). Wenn der Parameter name angegeben ist, verwendet die aktuelle Sitzung den angegebenen Wert auch als Namen.
Rückgabewert
Gibt den aktuellen Sitzungsnamen zurück. Wenn der Namensparameter angegeben ist, aktualisiert diese Funktion den Sitzungsnamen und gibt den ursprünglichen Sitzungsnamen zurück.
5.session_start
Eine neue Sitzung starten oder eine bestehende Sitzung wiederverwenden
session_start ([ array $options = array() ] ) : bool
Parameter
Optionen: Dieser Parameter ist ein assoziatives Array, dessen Elemente, sofern angegeben, zum Überschreiben der Konfigurationselemente in der Sitzungskonfigurationsanweisung verwendet werden. Die Schlüssel in diesem Array müssen nicht das Sitzungspräfix enthalten.
Rückgabewert
Gibt TRUE zurück, wenn die Sitzung erfolgreich gestartet wurde, andernfalls wird FALSE zurückgegeben
6.session_status
Gibt den aktuellen Sitzungsstatus zurück
session_status ( void ) : int
Rückgabewert
PHP_SESSION_DISABLED Die Sitzung ist deaktiviert.
PHP_SESSION_NONE Sitzung ist aktiviert, aber es existiert keine aktuelle Sitzung.
PHP_SESSION_ACTIVE Die Sitzung ist aktiviert und die aktuelle Sitzung existiert.
7.session_unset
Alle Sitzungsvariablen freigeben
session_unset ( void ) : void
3: Anwendungsfall
1. Grundlegende Sitzungsvorgänge
Allgemeine Grundvorgänge der PHP-Sitzung
2. Lösung zum Deaktivieren von Cookies im Browser
cookie和session的区别在于cookie是保存在客户端的,而session是存储在服务端中。它们都有生存时间的设置,session比cookie更安全。
当服务端与客户端通信后会生成会话后,会建立一个和浏览器的唯一会话PHPSESSID。这个id会在服务端保存,也会用cookie形式保存在客户端中。
禁用cookie后session不能把唯一id通过cookie方式在客户端中进行存储,这时候php会在浏览器地址栏中以url明文get的方式来传递phpsessionid,来进行客户端和服务端的唯一识别通信。
这样一来程序的安全性大大降低了。所有在php.ini默认是关闭通过地址栏传递phpsessionid的,如果没开启就不能使用session,所以需要php.ini配置支持才行。
session.use_only_cookies = 1; // 开启仅使用cookies存放会话id session.use_trans_sid = 1; // 允许Sessionid通过URL明文传输,默认为0关闭
或者使用代码来实现
/** * 兼容 php7.1 以下版本 */ if (!function_exists('session_create_id')) { function session_create_id() { return uniqid(); } } //获取SESSION_ID $session_id = isset($_GET['SESSION_ID']) ? $_GET['SESSION_ID'] : session_create_id(); //设置 SESSION_ID session_id($session_id); //开启session session_start(); $_SESSION['user'] = 'user01'; //echo $_SESSION['user']; echo $session_id;
3、浏览计数器
利用 session 机制可以实现 记录用户的访问页面的次数,代码如下:
<?php //开启session session_start(); //判断是否设置浏览数 if (isset($_SESSION['view_num'])) { //如果设置 浏览数加 1 $_SESSION['view_num'] = $_SESSION['view_num'] + 1; } else { //如果未设置 设置浏览数为 1 $_SESSION['view_num'] = 1; } die('当前浏览数为:' . $_SESSION['view_num']); ?>
4、使用 session 实现登录功能
对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。
如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?
因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。
而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。
而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(Session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。
当然使用 Session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。
下面是一个简单的用户登录示例:
<?php session_start(); //判断是否登录 if (isset($_SESSION['login_user'])) { die('已登录!当前登录用户为:' . $_SESSION['login_user']); } //判断是否为POST请求 if ($_SERVER['REQUEST_METHOD'] === 'POST') { //检查是否输入用户名 if (!isset($_POST['username']) || empty($_POST['username'])) { die('请输入用户名!'); } //检查是否输入密码 if (!isset($_POST['password']) || empty($_POST['password'])) { die('请输入密码!'); } //模拟数据 $data = ['username' => 'user01', 'password' => md5('123456')]; //检查用户名是否正确 if ($_POST['username'] === $data['username']) { //检查密码是否正确 if (md5($_POST['password']) === $data['password']) { //保存登录状态 $_SESSION['login_user'] = $_POST['username']; die('恭喜你登录成功!'); } } //用户名或密码不正确 die('用户名或密码不正确!'); } ?> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="=device-width, initial-scale=1.0"> <title>用户登录</title> </head> <body> <form action="./session02.php" method="post"> <input type="text" name="username" placeholder="请输入用户名!"> <input type="password" name="password" placeholder="请输入密码!"> <button type="submit">登录</button> </form> </body> </html>
四:PHP Session 视频教程
6.PHP高级视频教程之和session存储相关的一些面试题
7.ThinkPHP5基础讲解视频教程之Session的使用
8.ThinkPHP5基础讲解视频教程之Session的使用
10.会话管理视频教程
五:PHP Session 精选技术文章
3.Drei Möglichkeiten zum Löschen der Sitzung in PHP
4.Detaillierte Erläuterung der Schritte zum Synchronisieren der Web-Cluster-Sitzung in PHP
6.Redis-Methode zum Speichern von PHP-Sitzungen
7.Laravel verwendet Redis-Sharing-Session (detaillierte Code-Erklärung)
8.ThinkPHP6.0: Änderungen in Sitzungs- und Cookie-Mechanismen
9. Das Implementierungsprinzip der Sitzungs-ID in der PHP-Analyse
10.PHP implementiert die Mitglieder-Login-Registrierungsseite mit HTML plus Sitzung und Cookie
11. PHP stellt Sitzungsinhalt über session_id wieder her
12.Ausführliche Einführung in die Hauptsitzungskonfiguration in PHP.ini
13.Der Fall des WeChat-Applets des Erhaltens von session_key und openid (Bild)
14.Sitzungsfreigabe: Wie PHP- und Redis-Cluster die Sitzungsfreigabe realisieren
15.Einführung in die Methode von Redis, die die Sitzungsfreigabe realisiert
17. Verstehen Sie den Betriebsmechanismus der PHP-Sitzung
18.Lösung für die allgemeine Situation, in der PHP keine SESSION-Informationen erhalten kann
20 .PHPs Methode, um zu verhindern, dass die Sitzung abläuft
21.PHPs Methode von Verbesserung der SESSION-Antwortgeschwindigkeit
22.MemCache-Caching und Session (Wissenszusammenfassung)
23.Vergleich mehrerer Möglichkeiten für das Front-End Sitzungsinformationen erhalten
24.Laravels Methode zur Verarbeitung der Sitzung (Sitzung) Detaillierte Erklärung
Das obige ist der detaillierte Inhalt vonPHP-Sitzung (Thema). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Memcached ist eine häufig verwendete Caching-Technologie, die die Leistung von Webanwendungen erheblich verbessern kann. In PHP besteht die häufig verwendete Sitzungsverarbeitungsmethode darin, die Sitzungsdatei auf der Festplatte des Servers zu speichern. Diese Methode ist jedoch nicht optimal, da die Festplatte des Servers zu einem Leistungsengpass wird. Der Einsatz der Memcached-Caching-Technologie kann die Sitzungsverarbeitung in PHP optimieren und die Leistung von Webanwendungen verbessern. Sitzung in PHP

Vergleichende Analyse der domänen- und standortübergreifenden Anforderungsfälschung von PHPSession Mit der Entwicklung des Internets ist die Sicherheit von Webanwendungen besonders wichtig geworden. PHPSession ist ein häufig verwendeter Authentifizierungs- und Sitzungsverfolgungsmechanismus bei der Entwicklung von Webanwendungen, während Cross-Origin-Anfragen und Cross-Site-Request-Forgery (CSRF) zwei große Sicherheitsbedrohungen darstellen. Um die Sicherheit von Benutzerdaten und Anwendungen zu schützen, müssen Entwickler den Unterschied zwischen domänenübergreifender Sitzung und CSRF verstehen und übernehmen

Best Practices zur Lösung domänenübergreifender PHPSession-Probleme Mit der Entwicklung des Internets wird das Entwicklungsmodell der Front-End- und Back-End-Trennung immer häufiger. In diesem Modus können Front-End und Back-End unter unterschiedlichen Domänennamen bereitgestellt werden, was zu domänenübergreifenden Problemen führt. Bei der Verwendung von PHP betreffen domänenübergreifende Probleme auch die Bereitstellung und Verwaltung von Sitzungen. In diesem Artikel werden die Best Practices zur Lösung sitzungsübergreifender Probleme in PHP vorgestellt und spezifische Codebeispiele bereitgestellt. Verwendung von Cookies. Verwendung von Cookies

Die domänen- und plattformübergreifende Kompatibilitätsverarbeitung von PHPSession Bei der Entwicklung von Webanwendungen stehen immer mehr Entwickler vor domänenübergreifenden Problemen. Unter domänenübergreifend versteht man, dass eine Webseite unter einem Domänennamen Ressourcen unter einem anderen Domänennamen anfordert. Dies erhöht die Schwierigkeit der Entwicklung, insbesondere bei Anwendungen mit Sitzungsverwaltung. In diesem Artikel wird der Umgang mit der domänenübergreifenden Sitzungsverwaltung in PHP vorgestellt und einige spezifische Codebeispiele bereitgestellt. Session Management ist Wir

Die Beziehung zwischen domänenübergreifenden PHPSession- und Cross-Site-Scripting-Angriffen Mit der weit verbreiteten Verwendung von Netzwerkanwendungen haben Sicherheitsprobleme zunehmend Aufmerksamkeit erregt. Bei der Entwicklung von Webanwendungen ist die Handhabung von Benutzersitzungen eine sehr häufige Anforderung. PHP bietet einen praktischen Sitzungsverwaltungsmechanismus – Session. Allerdings weist Session auch einige Sicherheitsprobleme auf, insbesondere im Zusammenhang mit Cross-Domain- und Cross-Site-Scripting-Angriffen. Unter einem domänenübergreifenden Angriff (Cross-Domain) versteht man den Angriff über eine Website

PHPSession domänenübergreifende Fehlerprotokollverarbeitung Bei der Entwicklung von Webanwendungen verwenden wir häufig die Session-Funktion von PHP, um den Status des Benutzers zu verfolgen. In einigen Fällen kann es jedoch zu domänenübergreifenden Fehlern kommen, die dazu führen, dass auf Sitzungsdaten nicht richtig zugegriffen und diese nicht ordnungsgemäß verarbeitet werden können. In diesem Artikel wird erläutert, wie mit domänenübergreifenden PHPSession-Fehlern umgegangen wird, und es werden spezifische Codebeispiele bereitgestellt. Was ist ein domänenübergreifender PHPSession-Fehler? Ein domänenübergreifender Fehler bezieht sich auf den Fehler im Browser

Anpassungsfähigkeitsanalyse der domänenübergreifenden und mehrschichtigen Systemarchitektur von PHPSession Mit der Entwicklung der Internettechnologie wird die mehrschichtige Systemarchitektur in Webanwendungen immer häufiger eingesetzt. In mehrschichtigen Systemarchitekturen ist der domänenübergreifende Zugriff eine häufige Anforderung. Der Sitzungsmechanismus in PHP wird auch häufig für Funktionen wie Authentifizierung und Datenfreigabe in Webanwendungen verwendet. In diesem Artikel wird die domänenübergreifende Anpassungsfähigkeit von PHPSession in einer mehrschichtigen Systemarchitektur eingehend untersucht und spezifische Codebeispiele bereitgestellt.

Zusammenfassung der domänenübergreifenden Sicherheitsprüfung und des Schwachstellen-Minings von PHPSession: Mit der Entwicklung des Internets beginnen immer mehr Websites, PHPSession zum Verwalten des Benutzeranmeldestatus und der Benutzerdaten zu verwenden. Aufgrund der Eigenschaften von PHPSession birgt es jedoch einige Sicherheitsrisiken, insbesondere bei domänenübergreifendem Zugriff. In diesem Artikel wird die Bedeutung der domänenübergreifenden Sicherheitsüberprüfung von PHPSession vorgestellt und einige spezifische Codebeispiele für das Schwachstellen-Mining bereitgestellt. 1. Einführung PHPSession ist eine Art
