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

Contrôle de session PHP Cookie et session

肚皮会动
肚皮会动original
2017-11-14 14:26:201960parcourir

Contrôle de session PHP : Session et Cookie explication détaillée, session cookie

1. contrôle

HTTP est un protocole sans état Il n'a pas de mécanisme intégré pour maintenir l'état entre deux transactions. Lorsqu'un utilisateur demande une page puis en demande une autre, HTTP n'a aucun moyen de nous dire que les deux demandes proviennent du même utilisateur.

L'idée du contrôle de session est de pouvoir suivre les utilisateurs en fonction d'une session sur le site Web, afin qu'il puisse facilement prendre en charge la connexion des utilisateurs et afficher le contenu correspondant en fonction de leur niveau d'autorisation et de leurs préférences personnelles. peut Ce comportement d'utilisateur est enregistré sur la base du contrôle de session et un panier d'achat peut également être mis en œuvre.

2. Comprendre les fonctions de base de la session

Les sessions PHP sont pilotées par un identifiant de session unique, qui est un nombre aléatoire crypté. Il est généré par PHP et sera enregistré sur le client pendant le cycle de vie de la session. Il peut être enregistré dans un cookie sur la machine de l'utilisateur ou transmis sur le réseau via l'URL.

L'ID de session est comme une clé, qui nous permet d'enregistrer certaines variables spécifiques, qui deviennent également des variables de session. Le contenu de ces variables sera enregistré côté serveur. L'ID de session est la seule information visible par le client. Si le client peut voir l'ID de session via un cookie ou une URL lors d'un lien de site Web spécifique, nous pouvons alors accéder aux variables de session enregistrées sur le serveur pour cette session. Par défaut, les variables de session sont enregistrées dans des fichiers ordinaires sur le serveur.

Enregistrez l'ID de session dans l'URL. S'il y a une chaîne de nombres aléatoires dans l'URL, il peut s'agir d'une forme de contrôle de session.

Les cookies sont une solution différente des sessions et résolvent également le problème du maintien de l'état sur plusieurs transactions tout en conservant une URL propre.

Processus de contrôle de session : lorsqu'un utilisateur se connecte ou parcourt une page d'un site pour la première fois, le site génère un identifiant de session PHP et l'envoie au client (navigateur) via un cookie. Lorsque l'utilisateur clique sur une autre page du site, le navigateur commence à se connecter à cette URL. Avant de se connecter, le navigateur recherchera d'abord les cookies enregistrés localement, et s'il existe des cookies liés à l'URL connectée, ils seront soumis au serveur. Juste lors de la connexion ou de la première connexion, un cookie lié à l'URL du site Web (ID de session enregistré) a été généré, ainsi lorsque l'utilisateur se reconnecte à ce site, le site peut identifier l'utilisateur grâce à cet ID de session. La variable de session liée à cet ID de session est récupérée du fichier de session du serveur pour maintenir la continuité entre les transactions.

3. Que sont les cookies

Les cookies sont créés côté serveur et réécrits dans le navigateur client. Le navigateur reçoit les instructions concernant l'écriture des cookies dans l'en-tête de réponse et les stocke dans un fichier local. fichier temporaire. Un fichier cookie est créé, qui stocke le contenu de votre cookie. Le contenu du cookie est stocké dans des paires clé-valeur, et la clé et la valeur ne peuvent être que des chaînes.

Un cookie est en fait une petite information qui peut être enregistrée sur la machine client par un script. Un cookie peut être installé sur la machine client en envoyant un en-tête HTTP contenant des données spécifiques au format suivant :

Set-Cookie : NAME = VALUE; [expires=DATE;] [path=PATH ] [domaine; =DOAMIN_NAME;] [secure]

Cela créera un cookie nommé NAME avec une valeur de VALUE. À l'exception de ce paramètre, tous les autres paramètres sont facultatifs. Le champ expire définit la date d'expiration du cookie (si la date d'expiration n'est pas définie, elle sera valide pour toujours à moins qu'elle ne soit supprimée manuellement). Les champs de chemin et de domaine sont combinés pour formuler une URL ou une URL liée aux cookies. Le mot clé secure signifie que les cookies ne sont pas activés dans les connexions HTTP ordinaires.

Lorsque le navigateur se connecte à une URL, il recherche d'abord les cookies enregistrés localement. S'il existe des cookies associés à l'URL connectée, le navigateur les soumet au serveur.


4. Qu'est-ce que la session

La session est un espace de stockage côté serveur maintenu par le serveur d'applications. Lorsque l'utilisateur se connecte au serveur, un ID de session unique sera créé et généré par le serveur. L'ID de session est utilisé comme identifiant pour accéder au serveur. -side Espace de stockage de session. Pendant la session, l'ID de session unique attribué au client, utilisé pour identifier l'utilisateur actuel et le distinguer des autres utilisateurs. Acceptez chaque demande d'accès via SessionID pour identifier l'utilisateur actuel, suivre et conserver les informations spécifiques de l'utilisateur et les variables de session, qui peuvent stocker des informations numériques ou textuelles dans la session. Par exemple, nom_session. Ces informations sont enregistrées côté serveur. Bien entendu, l'ID de session peut également être enregistré dans la base de données en tant qu'informations de session pour la persistance de la session. Cela peut suivre le nombre de connexions d'utilisateurs, en ligne ou non, le temps de connexion, etc., maintenant ainsi la relation entre les éléments HTTP sans état. Le stockage du contenu de la session est une liste de paires clé-valeur, et la clé est un type de chaîne. Le stockage de la session est plus pratique et la valeur peut être un objet.

Pendant la session, la session sera enregistrée dans deux fichiers respectivement sur le client et le serveur. Le client peut enregistrer l'ID de session en mode cookie (la méthode de sauvegarde par défaut) ou le transmettre sous la forme d'une chaîne d'URL. . Le côté serveur est généralement enregistré dans le répertoire de session spécifié sous forme de texte. Côté serveur, nous pouvons contrôler la méthode de stockage utilisée par le client via session.use_cookies. S'il est défini comme méthode de stockage de cookies, nous pouvons contrôler la durée de validité du cookie stocké sur le client via session.cookie_lifetime (valeur par défaut 0, effacée à la fermeture du navigateur). Si le client utilise un cookie pour enregistrer l'ID de session, utilisez un cookie "temporaire" pour l'enregistrer (le nom du cookie est PHPSESSID. Vous pouvez obtenir des informations détaillées via Firebug. Vous pouvez modifier le nom via php.ini session.name ), lorsque l'utilisateur soumet la page, ce SessionID sera soumis au serveur pour accéder aux données de session. Ce processus ne nécessite pas l'intervention du développeur.

5. Différences et connexions entre SESSION et COOKIE

Points similaires : Les deux peuvent résoudre le problème de l'apatridie HTTP, afin que le même client puisse enregistrer des données lors de plusieurs demandes de visite du site Web. définir des informations et établir des connexions entre les éléments demandés.

Différence : en termes simples, les informations sur les cookies sont stockées côté client et les informations de session sont stockées côté serveur.

La session utilise des paires clé-valeur, ce qui signifie que l'ID est stocké côté client et la valeur est placée côté serveur. L'ID de l'utilisateur est utilisé pour trouver la valeur correspondante sur le serveur. de cette façon, la valeur est placée côté serveur. Il y a une limite de temps et le serveur la recyclera/libérera automatiquement lorsque le temps sera écoulé.

Les cookies ont deux méthodes. L'une consiste à enregistrer la valeur dans la variable du navigateur et à se terminer à la fermeture du navigateur. L'autre méthode consiste à l'enregistrer sur le disque dur tant que le délai n'expire pas. Suivant Peut être réutilisé.

Contact : Lorsque le client utilise le SessionID enregistré selon la méthode du cookie, le SessionID est généralement enregistré dans le cookie.

Remarque : les cookies sont partagés entre les navigateurs dotés du même cœur. Les navigateurs dotés de cœurs différents ne sont pas partagés, comme Firefox et IE (les emplacements de stockage sont différents, et bien sûr ils ne sont pas partagés). Les navigateurs dotés de noyaux différents ne peuvent pas partager de cookies et généreront également des identifiants de session différents.

Ce qui précède est une explication détaillée du contrôle de session PHP. J'espère que cela vous sera utile.

Recommandations associées :

Contrôle de session PHP : Explication détaillée de la session et du cookie, sessioncookie

Contrôle de session php, session php

Introduction détaillée à l'exemple de code du contrôle de session php

Cookie de contrôle de session php et tutoriel Traitement de session_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