Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lege ich den Cookie-Bereich in PHP fest?

Wie lege ich den Cookie-Bereich in PHP fest?

青灯夜游
青灯夜游Original
2020-07-24 16:46:583101Durchsuche

In PHP können Sie die Funktion setcookie() verwenden, um den Geltungsbereich des Cookies festzulegen. Die Syntax lautet „setcookie(Name, Wert, Ablaufdatum, Pfad, Domäne, sicher)“. Sie können den Cookie-Bereich festlegen, indem Sie den Wert des Domänenparameters

Wie lege ich den Cookie-Bereich in PHP fest?

festlegen

Haben Sie beim Setzen von Cookies für die Website festgestellt, dass diese Cookies auch unter anderen Domainnamen der Website empfangen wurden? Diese nutzlosen Cookies scheinen zwar nicht für viel Traffic verantwortlich zu sein, aber für eine Website mit Dutzenden Millionen PV pro Tag sind die verschwendeten Ressourcen keine geringe Menge. Daher muss beim Setzen eines Cookies dessen Umfang genau festgelegt werden.

Wir alle wissen, dass setcookie in PHP verwendet wird, um die Cookies der Website zu setzen. [Empfohlene verwandte Tutorials: „PHP-Tutorial“]

Die Verwendung Diese Funktion lautet wie folgt:

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

Wie lege ich den Cookie-Bereich in PHP fest?

Heute besprechen wir die fünfte Parameterdomäne, da sie den Umfang des Cookies bestimmt.

Jetzt gibt es die folgenden 3 Domainnamen, einen Top-Level-Domainnamen, einen Second-Level-Domainnamen und einen Third-Level-Domainnamen:

① zydya.com

②blog.zyday.com

③one.blog.zyday.com

  • Setzen Sie zunächst Cookies unter dem Domainnamen ①zyday.com, führen Sie vier Tests durch und legen Sie die fest Domänenparameter zu leeren und 'zyday.com', 'blog.zyday.com' und 'one.blog.zyday.com'.

    √ zeigt an, dass das Cookie unter dem Domainnamen abgerufen werden kann, × zeigt an, dass das Cookie nicht abgerufen werden kann

Domänenparameter zydya.com blog.zyday.com eins. 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('name', 1,time()

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

× × ×

Wenn die Domäne auf leer gesetzt ist, wird die Domäne standardmäßig auf den aktuellen Domänennamen eingestellt und Subdomänen unter diesem Domänennamen können Cookies empfangen.

Aber wenn der Domänenparameter seinen Subdomänennamen festlegt, können nicht alle Domänennamen empfangen werden, einschließlich dieses Subdomänennamens.
  • Dann setzen Sie Cookies unter dem Domainnamen ②blog.zyday.com. Die Testbedingungen sind die gleichen wie oben
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') × × ×
×
Domänenparameter 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') × ×

Sehen Sie sich die zweite Zeile an. Der Domänenparameter ist zyday.com, der der übergeordnete Domänenname von blog.zyday.com ist. Dann sind alle Subdomänen unter zyday.com (einschließlich zyday.com, blog.zyday.com, eins). .blog.zyday.com) können Cookies empfangen.

Wenn es sich bei der Domäne um einen eigenen Domänennamen handelt, ist der übergeordnete Domänenname davon nicht betroffen und sie und ihre Subdomänennamen können Cookies empfangen.
Beim Festlegen der Subdomain oder eines anderen Domainnamens erhalten alle Domainnamen keine Cookies.

  • Setzen Sie schließlich das Cookie unter dem Domainnamen ③one.blog.zyday.com

×
Domänenparameter 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('name', 1, time()+1,'/',one.blog.zyday.com') ×

Die Schlussfolgerungen aus dem dritten Test wurden oben zusammengefasst. Lesen Sie es noch einmal, hier gibt es nicht viele Erklärungen.

Beim Festlegen der Domäne sind zwei Punkte zu beachten:

1. Wenn der Domänenparameter in setcookie weggelassen wird, wird für die Domäne standardmäßig der aktuelle Domänenname verwendet.

2. Der Domänenparameter kann den übergeordneten Domänennamen und sich selbst festlegen, jedoch keine anderen Domänennamen, einschließlich Subdomänennamen, festlegen, da das Cookie sonst nicht funktioniert.

Dann der Geltungsbereich des Cookies:

Der Geltungsbereich des Cookies ist die Domain selbst und alle Subdomains unter der Domain.

Empfohlenes Lernen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonWie lege ich den Cookie-Bereich in PHP fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn