Maison >développement back-end >Problème PHP >Comment définir la portée des cookies en php ?

Comment définir la portée des cookies en php ?

青灯夜游
青灯夜游original
2020-07-24 16:46:583232parcourir

En PHP, vous pouvez utiliser la fonction setcookie() pour définir la portée du cookie. La syntaxe est "setcookie(name, value, expire, path, domain, secure)". Vous pouvez définir la portée du cookie en définissant la valeur du paramètre de domaine,

Comment définir la portée des cookies en php ?

.

Lorsque nous avons défini des cookies pour le site Web, avez-vous constaté que ces cookies étaient également reçus sous d'autres noms de domaine du site Web ? Ces cookies inutiles ne semblent peut-être pas représenter beaucoup de trafic, mais pour un site avec des dizaines de millions de PV par jour, les ressources gaspillées ne sont pas négligeables. Par conséquent, lors de la création d’un cookie, sa portée doit être définie avec précision.

Nous savons tous que setcookie est utilisé en PHP pour définir des cookies de sites Web [Tutoriels associés recommandés : "Tutoriel PHP"]

L'utilisation de cette fonction. est la suivante :

setcookie(name,value,expire,path,domain,secure)

Comment définir la portée des cookies en php ?

Aujourd'hui, nous allons discuter de son cinquième domaine de paramètres, car il détermine la portée du cookie.

Il existe désormais les 3 noms de domaine suivants, un nom de domaine de premier niveau, un nom de domaine de deuxième niveau et un nom de domaine de troisième niveau :

① zydya.com

②blog.zyday.com

③one.blog.zyday.com

  • Définissez d'abord les cookies sous le nom de domaine ①zyday.com, effectuez quatre tests et définissez le paramètres de domaine à vider et 'zyday.com', 'blog.zyday.com' et 'one.blog.zyday.com'.

    √ indique que le cookie peut être obtenu sous le nom de domaine, × indique que le cookie ne peut pas être obtenu

paramètre de domaine zydya.com blog.zyday.com un. blog.zyday.com
setcookie('name',1,time()+1)
setcookie('name',1,time()+1,'/','zyday.com')
setcookie('name',1,time()
domain参数 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()+1)  √  √  √
setcookie('name',1,time()+1,'/','zyday.com')    √  √
setcookie('name',1,time()
+1,'/','blog.zyday.com')
 ×  ×  ×
setcookie('name',1,time()
+1,'/','one.blog.zyday.com')
× × ×
+1,'/', 'blog.zyday.com ')
× × ×
setcookie('nom', 1,time()

+1,'/','one.blog.zyday.com')

× × ×

Lorsque le domaine est défini sur vide, le domaine est par défaut le nom de domaine actuel et les sous-domaines sous ce nom de domaine peuvent recevoir des cookies.

Mais lorsque le paramètre de domaine définit son nom de sous-domaine, tous les noms de domaine ne peuvent pas être reçus, y compris ce nom de sous-domaine.
  • Définissez ensuite les cookies sous le nom de domaine ②blog.zyday.com Les conditions de test sont les mêmes que ci-dessus
domain参数 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()
+1)
×
setcookie('name',1,time()+1,'/','zyday.com')
setcookie('name',1,time()+1,'/','blog.zyday.com') ×
setcookie('name',1,time()+1,'/',one.blog.zyday.com') × × ×
×
paramètre de domaine zydya.com blog.zyday.com un. blog.zyday.com
setcookie('name',1,time()+1) ×
setcookie('name',1,time()+1,'/','zyday.com ')
setcookie('name',1,time()+ 1,'/', 'blog.zyday.com') ×
setcookie('name', 1,time()+1,'/',one.blog.zyday.com') × ×

Regardez la deuxième ligne. Le paramètre de domaine est zyday.com, qui est le nom de domaine parent de blog.zyday.com, puis tous les sous-domaines sous zyday.com (y compris zyday.com, blog.zyday.com, un. .blog.zyday .com) peut recevoir des cookies.

Lorsque le domaine est son propre nom de domaine, son nom de domaine parent ne sera pas affecté, et lui et ses noms de sous-domaines peuvent recevoir des cookies.
Lors de la définition de son sous-domaine ou autre nom de domaine, tous les noms de domaine ne recevront pas de cookies.

  • Définissez enfin le cookie sous le nom de domaine ③one.blog.zyday.com

×
paramètre de domaine zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()
domain参数 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()
+1)
× ×
setcookie('name',1,time()+1,'/','zyday.com')
setcookie('name',1,time()+1,'/','blog.zyday.com') ×
setcookie('name',1,time()+1,'/',one.blog.zyday.com') × ×
+1)
× ×
setcookie('name',1,time()+1,'/','zyday.com')
setcookie('name',1,time()+1,'/', 'blog .zyday.com') ×
setcookie('nom', 1, heure()+1,'/',one.blog.zyday.com') ×

Les conclusions tirées du troisième test ont été résumées ci-dessus. Relisez-le, pas beaucoup d'explications ici.

Il y a deux points à noter lors de la définition du domaine :

1. Si le paramètre de domaine est omis dans setcookie, alors le domaine est par défaut le nom de domaine actuel.

2. Le paramètre domain peut définir le nom de domaine parent et lui-même, mais ne peut pas définir d'autres noms de domaine, y compris les noms de sous-domaines, sinon le cookie ne fonctionnera pas.

Ensuite, la portée du cookie :

La portée du cookie est le domaine lui-même et tous les sous-domaines sous le domaine.

Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise

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