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!

Die Hauptvorteile der Verwendung von Datenbankspeichersitzungen sind Persistenz, Skalierbarkeit und Sicherheit. 1. Persistenz: Auch wenn der Server neu gestartet wird, können die Sitzungsdaten unverändert bleiben. 2. Skalierbarkeit: Anwendbar für verteilte Systeme, um sicherzustellen, dass Sitzungsdaten zwischen mehreren Servern synchronisiert werden. 3. Sicherheit: Die Datenbank bietet verschlüsselten Speicher zum Schutz vertraulicher Informationen.

Das Implementieren der benutzerdefinierten Sitzung in PHP kann durch die Implementierung der SessionHandlerInterface -Schnittstelle durchgeführt werden. Die spezifischen Schritte umfassen: 1) Erstellen einer Klasse, die SessionHandlerInterface wie CustomSessionHandler implementiert; 2) Umschreiben von Methoden in der Schnittstelle (z. B. offen, schließen, lesen, schreiben, zerstören, GC), um die Lebenszyklus- und Speichermethode von Sitzungsdaten zu definieren; 3) Registrieren Sie einen benutzerdefinierten Sitzungsprozessor in einem PHP -Skript und starten Sie die Sitzung. Auf diese Weise können Daten in Medien wie MySQL und Redis gespeichert werden, um Leistung, Sicherheit und Skalierbarkeit zu verbessern.

SessionID ist ein Mechanismus, der in Webanwendungen verwendet wird, um den Benutzersitzstatus zu verfolgen. 1. Es handelt sich um eine zufällig generierte Zeichenfolge, mit der die Identitätsinformationen des Benutzers während mehrerer Interaktionen zwischen dem Benutzer und dem Server aufrechterhalten werden. 2. Der Server generiert und sendet ihn über Cookies- oder URL -Parameter an den Client, um diese Anforderungen in mehreren Anforderungen des Benutzers zu identifizieren und zu verknüpfen. 3. Die Erzeugung verwendet normalerweise zufällige Algorithmen, um Einzigartigkeit und Unvorhersehbarkeit zu gewährleisten. 4. In der tatsächlichen Entwicklung können In-Memory-Datenbanken wie Redis verwendet werden, um Sitzungsdaten zu speichern, um die Leistung und Sicherheit zu verbessern.

Das Verwalten von Sitzungen in staatenlosen Umgebungen wie APIs kann durch Verwendung von JWT oder Cookies erreicht werden. 1. JWT ist für Staatenlosigkeit und Skalierbarkeit geeignet, aber es ist groß, wenn es um Big Data geht. 2. Kookies sind traditioneller und einfacher zu implementieren, müssen jedoch mit Vorsicht konfiguriert werden, um die Sicherheit zu gewährleisten.

Um die Anwendung vor Sitzungsangriffen im Zusammenhang mit den Sitzungen zu schützen, sind folgende Maßnahmen erforderlich: 1. Stellen Sie die HTTPonly- und sicheren Flags ein, um die Sitzungs Cookies zu schützen. 2. Exportcodes für alle Benutzereingaben. 3. Implementieren Sie die Inhaltssicherheitsrichtlinie (CSP), um die Skriptquellen einzuschränken. Durch diese Richtlinien können Sitzungsangriffe im Zusammenhang mit Sitzungen effektiv geschützt und Benutzerdaten sichergestellt werden.

Methoden zur Optimierung der PHP -Sitzungsleistung gehören: 1. Start der Verzögerung der Sitzung, 2. Verwenden Sie Datenbank zum Speichern von Sitzungen, 3. Kompress -Sitzungsdaten, 14. Sitzungslebenszyklus verwalten und 5. Sitzungsfreigabe implementieren. Diese Strategien können die Effizienz von Anwendungen in hohen Parallelitätsumgebungen erheblich verbessern.

Thesession.gc_maxlifetimesettingInphpdeterminesthelifspanofSessionData, setInseconds.1) ItsconfiguredInphp.iniorviaini_Set (). 2) AbalanceIsneedToAvoidPerformanceSandunexexwortedyg -Probablogouts

In PHP können Sie die Funktion Session_name () verwenden, um den Sitzungsnamen zu konfigurieren. Die spezifischen Schritte sind wie folgt: 1. Verwenden Sie die Funktion Session_name (), um den Sitzungsnamen wie Session_name ("my_Session") festzulegen. 2. Nachdem Sie den Sitzungsnamen festgelegt haben, call Session_start (), um die Sitzung zu starten. Das Konfigurieren von Sitzungsnamen kann Sitzungsdatenkonflikte zwischen mehreren Anwendungen vermeiden und die Sicherheit verbessern, aber auf die Einzigartigkeit, Sicherheit, Länge und Festlegen des Zeitpunkts der Sitzungsnamen achten.


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

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.
