Maison > développement back-end > tutoriel php > Contrôle de session PHP

Contrôle de session PHP

不言
Libérer: 2023-03-23 10:40:01
original
6757 Les gens l'ont consulté

Le contenu présenté dans cet article est le contrôle de session PHP. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer


Contrôle de session

Le protocole HTTP est un protocole de communication mutuelle entre les serveurs WEB et les navigateurs. C'est un protocole sans état, c'est-à-dire que chaque requête HTTP est indépendante les unes des autres. Par conséquent, le protocole HTTP ne dispose pas de mécanisme intégré pour maintenir l’état entre deux transactions. Par exemple, lorsqu'un utilisateur demande une page puis en demande une autre, HTTP ne pourra pas nous dire si les deux requêtes proviennent du même utilisateur.

Dans les sites Web, nous avons souvent besoin de suivre une variable : en suivant les variables, nous pouvons établir des connexions entre plusieurs éléments de requête, puis afficher différents contenus et différentes pages en fonction de l'autorisation et de l'identité de l'utilisateur. Il s'agit d'une technologie de contrôle de session.
Les technologies de contrôle de session couramment utilisées sont

et Cookie. En termes simples, Cookie détermine l'identité de l'utilisateur en enregistrant des informations côté client ; Session détermine l'identité de l'utilisateur en enregistrant des informations côté serveur. Session

Cookie

Le cookie est un petit fichier texte inclus dans le message de requête HTTP et transmis entre le serveur Web et le navigateur. Le principe de fonctionnement du Cookie est le suivant :

  1. Le serveur définit un champ

    dans le message de réponse HTTP et place les données du Cookie dans le champ Set-Cookie avec le message HTTP. . Au navigateur ; Set-Cookie

  2. Après avoir reçu le message de réponse HTTP, le navigateur vérifie que le champ

    a une valeur et créera un fichier Cookie localement pour enregistrer les données

  3. Lorsque le navigateur envoie à nouveau une requête au serveur, le navigateur recherchera d'abord le fichier Cookie enregistré localement. S'il y a des cookies liés à l'URL connectée dans le fichier Cookie, ce sera le cas. en HTTP Définissez un champ Cookie dans le message de requête, ajoutez les données du fichier Cookie au champ, et enfin envoyez le message de requête HTTP transportant le champ Cookie au serveur.

Les cookies peuvent être utilisés pour enregistrer des noms d'utilisateur, des mots de passe, des paramètres personnalisés et d'autres informations simples. Voici les instructions d'utilisation des cookies :

Créer
<?phpsetcookie("Cookie", "cookievalue", time()+3600);
Copier après la connexion
setcookie() doit être appelé avant que le contenu du fichier HTML ne soit sorti
Recevoir
<?phpecho $_COOKIE["Cookie"];
Copier après la connexion
Supprimer
<?php#方法一:将值设为空setcookie("Cookie", null);#方法二:将过期时间设为过去时间setcookie("Cookie", "value" , time());
Copier après la connexion
Apprentissage associé recommandations :

cookie php(Sujet spécial)

Session

La session est une méthode de maintenance des données de session utilisateur côté serveur. Elle fonctionne comme suit :

  1. Lorsque le navigateur accède au script PHP pour la première fois, la fonction

    créera un ID de session unique (chaque client a un identifiant unique) et transmettra automatiquement la réponse HTTP en-tête, enregistrez cet ID de session dans le cookie client. Dans le même temps, un fichier nommé avec l'ID de session est également créé côté serveur pour enregistrer les informations de session de l'utilisateur seesion_start()

  2. Lorsque le même utilisateur visitera à nouveau ce site Web, il sera automatiquement transmis ; HTTP L'en-tête de la requête apporte l'ID Seesion enregistré dans le cookie

  3. Le script PHP du serveur reçoit la requête du client, puis la fonction

    n'en attribuera pas de nouveau. mais pour trouver le fichier de session portant le même nom que l'ID de session sur le disque dur du serveur et lire les informations de session précédemment enregistrées pour cet utilisateur. session_start()

首先,创建 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";
Copier après la connexion

Session 同样可以用来保存用户名、密码、个性化设置等一些简单的信息,以下是 Session 的使用说明:

创建
//启动 sessionsession_start();//注册session变量,赋值为一个用户的名称$_SESSION["username"] = "jochen";//注册session变量,赋值为一个用户的ID$_SESSION["uid"] = 1;
Copier après la connexion
注意:必须在 HTML 文件的内容输出之前调用 session_start()
读取
<?phpsession_start();echo $_SESSION["username"]; # # jochenecho $_SESSION["uid"];      # 1
Copier après la connexion
销毁
<?phpsession_start(); 
unset($_SESSION["username"]);unset($_SESSION["uid"]);
Copier après la connexion
需要注意的是,当 session 文件比较多的情况下,将会产生 I/Q 读写性能问题。此时可以采用 memcached、redis 等缓存系统。

相关学习推荐:php session(专题)

相关推荐:

PHP会话控制之cookie详解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal