Maison  >  Article  >  développement back-end  >  Contrôle de session en PHP

Contrôle de session en PHP

不言
不言original
2018-04-09 16:07:251357parcourir

Le contenu de cet article est de partager avec vous le contrôle de peinture en PHP. Les amis dans le besoin peuvent s'y référer

Contrôle de session

Le protocole HTTP est la communication mutuelle entre le serveur WEB et protocole de navigateur, il s'agit d'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 techniques de contrôle de session couramment utilisées sont Cookie et Session. 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.

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 Set-Cookie 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 ;

  2. Après avoir reçu le message de réponse HTTP, le navigateur vérifie que le champ Set-Cookie 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, il le fera. être 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
setcookie() doit être appelé avant que le contenu du fichier HTML ne soit sorti
<?php
setcookie("Cookie", "cookievalue", time()+3600);
Receive
Supprimer
<?php
echo $_COOKIE["Cookie"];
Session
<?php
#方法一:将值设为空
setcookie("Cookie", null);

#方法二:将过期时间设为过去时间
setcookie("Cookie", "value" , time());

Session C'est une méthode de conservation des données de session utilisateur côté serveur. Elle fonctionne comme suit :

    Lorsque le navigateur accède au script PHP pour la première fois, le
  1. La fonction crée un ID de session unique (chaque client a une identification unique) et enregistre automatiquement cet ID de session dans le cookie client via l'en-tête de réponse HTTP. 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
  4. n'attribuera pas un nouvel ID de session, mais pour rechercher 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()

  5. Tout d'abord, il existe deux manières de créer un identifiant unique de Session : via Cookie ou GET. Par défaut, PHP créera un cookie nommé
lors de l'utilisation de Session (la valeur de session.name peut être modifiée via php.ini. Si le client désactive les cookies, il peut spécifier que l'ID de session soit transmis au serveur via). GET (modifier

et autres paramètres dans php.ini). Deuxièmement, la session est enregistrée sous forme de fichier. Il y a un élément de configuration PHPSESSID dans php.ini. Le chemin renseigné enregistrera tous les fichiers de session. Le format de dénomination des fichiers de session est : session.use_trans_sid. Chaque fichier stocke les données d'une session. Enfin, les données enregistrées dans le fichier de session sont sérialisées, telles que : --session.save_path= ""sess_[PHPSESSID的值]

La session peut également être utilisée pour enregistrer des informations simples telles que le nom d'utilisateur, le mot de passe, les paramètres personnalisés, etc. Voici la session Mode d'emploi :
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";

Créer

Remarque : session_start() doit être appelé avant que le contenu du fichier HTML ne soit affiché
//启动 session
session_start();

//注册session变量,赋值为一个用户的名称
$_SESSION["username"] = "jochen";

//注册session变量,赋值为一个用户的ID
$_SESSION["uid"] = 1;
Lire
Détruire
<?php
session_start();
echo $_SESSION["username"]; # # jochen
echo $_SESSION["uid"];      # 1
Il convient de noter que lorsqu'il y a de nombreux fichiers de session, des problèmes de performances de lecture et d'écriture I/Q se produiront. À l'heure actuelle, des systèmes de mise en cache tels que Memcached et Redis peuvent être utilisés.
<?php
session_start();
 
unset($_SESSION["username"]);
unset($_SESSION["uid"]);
Recommandations associées :

Tableaux pour l'apprentissage PHP

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!

Déclaration:
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
Article précédent:Fonction d'apprentissage PHPArticle suivant:Fonction d'apprentissage PHP