Maison  >  Article  >  développement back-end  >  Explication détaillée de la technologie de session Cookie en PHP

Explication détaillée de la technologie de session Cookie en PHP

小云云
小云云original
2018-03-31 09:49:182058parcourir


En PHP, le cycle de vie maximum de toutes les données (variables, constantes, variables globales) est d'un cycle de script (c'est à dire : le navigateur envoie une requête au serveur ---> serveur Répondez à la demande et transmettez la demande à PHP pour traitement ----> PHP la renvoie au serveur après le traitement ---> Le serveur la renvoie au navigateur). Lorsque le navigateur le demandera à nouveau, toutes les données précédentes seront invalides.

Cependant, pour de nombreuses opérations, telles que les opérations de connexion de l'utilisateur, une fois que l'utilisateur s'est connecté avec succès, l'utilisateur peut gérer directement le backend sans saisir de mot de passe lors d'une nouvelle demande. Dans le même temps, si l'utilisateur ne parvient pas à se connecter ou n'est pas connecté, il ne peut pas accéder directement via l'URL d'arrière-plan. Cela nécessite des données capables d'enregistrer l'état de connexion de l'utilisateur afin qu'elles puissent être utilisées dans plusieurs cycles de script. --------Ce mécanisme de stockage de données par cycle de scripts croisés est appelé technologie de session.

Technologie de session COOKIE ---Technologie qui permet aux scripts côté serveur de stocker des données côté navigateur

Principe : 1. En répondant à une demande, le serveur peut envoyer des instructions au navigateur pour gérer les données des cookies stockées sur le navigateur.

2. Si le navigateur a stocké des données de cookies définies par un serveur, il transférera automatiquement les données de cookies stockées au serveur lors de cette demande.


Utilisation :

1. Définir (ajouter, supprimer, modifier et vérifier) ​​les cookies dans le serveur :

SetCookie (clé, valeur); via la clé (clé)-valeur (valeur), définissez le


EG : SetCookie ('name', 'li') augmenter les données des cookies


                                                                                                                                                                                                                                                                                        .

SetCookie ('nom'); ou setcookie ('nom', '') ou setcookie ('nom', 'li', heure ()-1); $ _Cookie ['Key']; vous pouvez obtenir les données du cookie transmises par le navigateur côté serveur, et sa valeur est valeur.

2. Validité :

Dans la fonction setcookie(), en plus des deux premiers paramètres nom-valeur, le troisième paramètre indique qu'il s'agit d'une heure valide.

setcookie('name','Li',time()+60); Le troisième paramètre est calculé par un horodatage, donc time()+60 signifie qu'il expire 60 secondes après la création.

La durée de validité par défaut est la fin de la période de session (le navigateur est fermé), également appelée cookies temporaires.


<?php
setcookie(&#39;name&#39;,&#39;Li&#39;);
var_dump($_COOKIE[&#39;name&#39;]);

À la première demande, il n'y a pas de données de cookie, mais le navigateur Il y a des données de cookie nommées « nom » dans la table des cookies côté client, on peut donc dire que les données sont stockées côté navigateur après la réponse. Le délai d'expiration dans le résultat peut être considéré comme "session" sans aucun paramètre Lors de l'écriture d'un script, la même requête du navigateur est utilisée :


. Par conséquent, les données des cookies seront automatiquement transmises au serveur lorsque le navigateur le demandera à nouveau.
var_dump($_COOKIE[&#39;name&#39;]);//该文件为cookie_2.php

3. Chemins valides

Par défaut, les cookies sont valides dans le chemin actuel et les chemins descendants. Lorsque le navigateur fait une demande, il recherchera d'abord les cookies valides dans le répertoire actuel, puis recherchera vers le haut et transportera tous les cookies valides vers le serveur.

Peut être modifié via le quatrième paramètre de setcookie(); généralement défini sur '/' pour indiquer que le site est valide dans le nouveau répertoire, c'est-à-dire que l'ensemble du site est valide.


4. Domaine valide

Fait référence à la zone dans laquelle les données des cookies peuvent être appliquées. La valeur par défaut est : uniquement valable sous le nom de domaine actuel. Mais il peut être défini via le cinquième paramètre ;

Par exemple : www.qq.com//où qq.com est le nom de domaine de premier niveau.

                                                                                                                                                                                                              www.wx2.qq.com //wx2.qq.com est un abonné nom de domaine sous ce nom de domaine de premier niveau.

Si le quatrième paramètre n'est pas renseigné ci-dessus, la requête par défaut ne sera valable que sous le nom de domaine de premier niveau et non sous le nom de sous-domaine.


Ceci sont les données des cookies qui existent sur le navigateur IE.

Nous pouvons constater qu'il utilise le domaine pour distinguer les différents accès, et son chemin est « / », ce qui signifie que tous les répertoires du site sont valides, et expire signifie le délai d'expiration.

5. S'il faut uniquement sécuriser la transmission (https://.....indique le protocole http crypté)

En définissant le sixième paramètre de setcookie() sur true, vous pouvez activer l’option de transfert sécurisé uniquement. Après l'activation, les données des cookies seront transmises au serveur uniquement lorsque https://.... est demandé. La valeur par défaut false signifie que la transmission sécurisée n'est pas activée, c'est-à-dire que les données des cookies peuvent être obtenues par toutes les méthodes de requête.

6.HTTPONLY

En définissant le septième paramètre de setcookie() sur true, vous pouvez activer l'option HTTPONLY, ce qui signifie que les données des cookies ne peuvent être obtenues que lors des requêtes http , et Les données actuelles des cookies ne peuvent pas être obtenues via des scripts tels que javascript.

Remarque : 1. La valeur du cookie ne prend en charge que le type de chaîne (les données de type numérique peuvent être converties en chaîne avant le réglage).

2. La clé du cookie peut être écrite sous la forme d'un indice de tableau.

setcookie('student[name]','Li');

setcookie('student[gender]','Male');

Il y a toujours deux cookies ici (que ce soit lors du stockage ou de la demande), mais pendant l'essai, php les a organisés dans un tableau.

Recommandations associées :


Résumé des exemples de technologies de session COOKIE et SESSION

Tutoriel de base PHP No. 17 Technologie de session COOKIE, SESSION

Exemples de cookies pour la technologie 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
Article précédent:AOP en PHPArticle suivant:AOP en PHP