Inhaltsverzeichnis
1: Was ist eine PHP-Sitzung?
Sitzungsmechanismus
Wichtige Punkte der PHP-Sitzung
Zwei: Einführung in die Grundfunktionen der PHP-Sitzung
3: Anwendungsfall
四:PHP Session 视频教程
五:PHP Session 精选技术文章
Heim Backend-Entwicklung PHP-Tutorial PHP-Sitzung (Thema)

PHP-Sitzung (Thema)

Jul 11, 2020 pm 05:55 PM
php session

Zu den PHP-Sitzungsthemen gehören PHP-Sitzungskonzepte, grundlegende Funktionsnutzung, PHP-Sitzungsanwendungsfälle, PHP-Sitzungsvideo-Tutorials und verwandte ausgewählte Artikel. Willkommen zum Lernen!

PHP-Sitzung (Thema)

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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关闭
Nach dem Login kopieren

或者使用代码来实现

/**
 * 兼容 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;
Nach dem Login kopieren

3、浏览计数器

利用 session 机制可以实现 记录用户的访问页面的次数,代码如下:

<?php
//开启session
session_start();

//判断是否设置浏览数
if (isset($_SESSION[&#39;view_num&#39;])) {
    //如果设置 浏览数加 1
    $_SESSION[&#39;view_num&#39;] = $_SESSION[&#39;view_num&#39;] + 1;
} else {
    //如果未设置 设置浏览数为 1
    $_SESSION[&#39;view_num&#39;] = 1;
}

die(&#39;当前浏览数为:&#39; . $_SESSION[&#39;view_num&#39;]);
?>
Nach dem Login kopieren

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[&#39;login_user&#39;])) {
    die(&#39;已登录!当前登录用户为:&#39; . $_SESSION[&#39;login_user&#39;]);
}

//判断是否为POST请求
if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {

    //检查是否输入用户名
    if (!isset($_POST[&#39;username&#39;]) || empty($_POST[&#39;username&#39;])) {
        die(&#39;请输入用户名!&#39;);
    }

    //检查是否输入密码
    if (!isset($_POST[&#39;password&#39;]) || empty($_POST[&#39;password&#39;])) {
        die(&#39;请输入密码!&#39;);
    }

    //模拟数据
    $data = [&#39;username&#39; => &#39;user01&#39;, &#39;password&#39; => md5(&#39;123456&#39;)];

    //检查用户名是否正确
    if ($_POST[&#39;username&#39;] === $data[&#39;username&#39;]) {
        //检查密码是否正确
        if (md5($_POST[&#39;password&#39;]) === $data[&#39;password&#39;]) {
            //保存登录状态
            $_SESSION[&#39;login_user&#39;] = $_POST[&#39;username&#39;];
            die(&#39;恭喜你登录成功!&#39;);
        }
    }

    //用户名或密码不正确
    die(&#39;用户名或密码不正确!&#39;);
}
?>
<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>
Nach dem Login kopieren

四:PHP Session 视频教程

PHP-Sitzung (Thema)

1.PHP中session如何存储及删除变量的

2.PHP如何用session来判断用户是否登录

3.PHP如何用session来记录用户登陆信息

4.php视频教程之PHP会话管理

5.PHP视频教程之会话控制session的工作机制

6.PHP高级视频教程之和session存储相关的一些面试题

7.ThinkPHP5基础讲解视频教程之Session的使用

8.ThinkPHP5基础讲解视频教程之Session的使用

9.PHP经典实战视频教程之SESSION示例(购物车)

10.会话管理视频教程

11.Blog项目实战之session原理

五:PHP Session 精选技术文章

1.PHP7中创建session和销毁session的方法

2.利用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

5.Detaillierte Erläuterung von Beispielen für die Beurteilung von Benutzerbetriebsberechtigungen durch Sitzung

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

16.tp5 realisiert die Anmeldung, speichert die Sitzung und springt dann entsprechend den unterschiedlichen Rollenberechtigungen zur Seite

17. Verstehen Sie den Betriebsmechanismus der PHP-Sitzung

18.Lösung für die allgemeine Situation, in der PHP keine SESSION-Informationen erhalten kann

19.Detaillierte Erklärung der Schritte für PHP+Session, um wiederholte Formularübermittlungen zu verhindern

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Memcached-Caching-Technologie optimiert die Sitzungsverarbeitung in PHP Die Memcached-Caching-Technologie optimiert die Sitzungsverarbeitung in PHP May 16, 2023 am 08:41 AM

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 Anfragefälschung von PHP-Sitzungen Vergleichende Analyse der domänen- und standortübergreifenden Anfragefälschung von PHP-Sitzungen Oct 12, 2023 pm 12:58 PM

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 PHP-Sitzungsprobleme Best Practices zur Lösung domänenübergreifender PHP-Sitzungsprobleme Oct 12, 2023 pm 01:40 PM

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

Domain- und plattformübergreifende Kompatibilitätsverarbeitung von PHP-Sitzungen Domain- und plattformübergreifende Kompatibilitätsverarbeitung von PHP-Sitzungen Oct 12, 2023 am 09:46 AM

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 PHP-Sitzungs- und Cross-Site-Scripting-Angriffen Die Beziehung zwischen domänenübergreifenden PHP-Sitzungs- und Cross-Site-Scripting-Angriffen Oct 12, 2023 pm 12:58 PM

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

Analysieren Sie die domänenübergreifende Fehlerprotokollverarbeitung der PHP-Sitzung Analysieren Sie die domänenübergreifende Fehlerprotokollverarbeitung der PHP-Sitzung Oct 12, 2023 pm 01:42 PM

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 PHP-Sitzungen Anpassungsfähigkeitsanalyse der domänenübergreifenden und mehrschichtigen Systemarchitektur von PHP-Sitzungen Oct 12, 2023 pm 02:34 PM

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.

Domainübergreifendes PHP-Session-Sicherheitsaudit und Schwachstellen-Mining Domainübergreifendes PHP-Session-Sicherheitsaudit und Schwachstellen-Mining Oct 12, 2023 am 11:23 AM

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

See all articles