suchen

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

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[&#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;]);
?>

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>

四: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!

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
Was sind die Vorteile der Verwendung einer Datenbank zum Speichern von Sitzungen?Was sind die Vorteile der Verwendung einer Datenbank zum Speichern von Sitzungen?Apr 24, 2025 am 12:16 AM

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.

Wie implementieren Sie eine benutzerdefinierte Sitzung in PHP?Wie implementieren Sie eine benutzerdefinierte Sitzung in PHP?Apr 24, 2025 am 12:16 AM

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.

Was ist eine Sitzungs -ID?Was ist eine Sitzungs -ID?Apr 24, 2025 am 12:13 AM

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.

Wie gehen Sie mit Sitzungen in einer staatenlosen Umgebung (z. B. API) um?Wie gehen Sie mit Sitzungen in einer staatenlosen Umgebung (z. B. API) um?Apr 24, 2025 am 12:12 AM

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.

Wie können Sie vor SPRECTS-Angriffen (XSS) schützen?Wie können Sie vor SPRECTS-Angriffen (XSS) schützen?Apr 23, 2025 am 12:16 AM

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.

Wie können Sie die PHP -Sitzungsleistung optimieren?Wie können Sie die PHP -Sitzungsleistung optimieren?Apr 23, 2025 am 12:13 AM

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.

Wie lautet die Konfigurationseinstellung von Session.gc_maxlifetime?Wie lautet die Konfigurationseinstellung von Session.gc_maxlifetime?Apr 23, 2025 am 12:10 AM

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

Wie konfigurieren Sie den Sitzungsnamen in PHP?Wie konfigurieren Sie den Sitzungsnamen in PHP?Apr 23, 2025 am 12:08 AM

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.

See all articles

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

Sicherer Prüfungsbrowser

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

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SecLists

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.