ホームページ  >  記事  >  バックエンド開発  >  PHPでCookieのスコープを設定するにはどうすればよいですか?

PHPでCookieのスコープを設定するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2020-07-24 16:46:583101ブラウズ

PHP では、setcookie() 関数を使用して Cookie のスコープを設定できます。構文は「setcookie(名前, 値, 有効期限, パス, ドメイン, セキュア)」です。ドメイン パラメータの値

PHPでCookieのスコープを設定するにはどうすればよいですか?

を設定することで、Cookie のスコープを設定できます。

Web サイトに Cookie を設定したとき、これらの Cookie が Web サイトの他のドメイン名でも受信されたことがわかりましたか?これらの役に立たない Cookie はそれほど多くのトラフィックを占めていないように見えるかもしれませんが、1 日に数千万の PV があるサイトにとって、無駄なリソースは決して小さくありません。したがって、Cookie を設定する場合は、その範囲を正確に設定する必要があります。

PHP で setcookie が Web サイトの Cookie を設定するために使用されていることは誰もが知っています [推奨関連チュートリアル: 「PHP チュートリアル 」]

この関数の内容は次のとおりです。

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

PHPでCookieのスコープを設定するにはどうすればよいですか?

今日は、その 5 番目のパラメータ ドメインについて説明します。これは Cookie のスコープを決定するためです。

現在、トップレベル ドメイン名、第 2 レベル ドメイン名、第 3 レベル ドメイン名という 3 つのドメイン名があります:

① zydya.com

②blog.zyday.com

③one.blog.zyday.com

  • まずドメイン名①zyday.com で Cookie を設定し、4 つのテストを実行して、ドメインパラメータを空にし、「zyday.com」、「blog.zyday.com」、「one.blog.zyday.com」に設定します。

    √はドメイン名でCookieが取得できることを示し、×はCookieが取得できないことを示します

## √ setcookie('name',1,time() 1,'/','zyday.com')√ √ √##setcookie('name',1, time() 1,'/','blog.zyday.com') 1,'/','one.blog.zyday.com') ただし、ドメイン パラメーターでサブドメイン名を設定すると、そのサブドメイン名を含むすべてのドメイン名を受信できなくなります。
ドメインパラメータ zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time() 1) ## √

×
× × setcookie('name',1,time()
×
× ##× ドメインが空に設定されている場合、ドメインはデフォルトで現在のドメイン名になり、このドメイン名のサブドメインは Cookie を受信できます。


#次に、②blog.zyday.com ドメイン名の下に Cookie を設定します。テスト条件は上記と同じです。

  • ドメイン パラメーター
zydya.com##blog.zyday.com√##√setcookie('name',1,time() 1,'/',one.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') ##√
##× ##×

2 行目を見てください。ドメイン パラメーターは zyday.com で、blog.zyday.com の親ドメイン名です。次に、zyday.com の下にあるすべてのサブドメイン名 (zyday.com、blog.zyday.com、 one.blog.zyday .com) は Cookie を受け取ることができます。

ドメインが独自のドメイン名の場合、その親ドメイン名は影響を受けず、そのドメイン名とそのサブドメイン名は Cookie を受け取ることができます。
サブドメイン名または他のドメイン名を設定する場合、すべてのドメイン名は Cookie を受け取りません。

  • #最後に、③one.blog.zyday.com ドメイン名の下に Cookie を設定します

##ドメイン パラメータzydya.comblog.zyday.comsetcookie('name',1,time()##×√##√ドメインを設定する際に注意すべき点が 2 つあります: 1. setcookie でドメイン パラメーターを省略した場合、ドメインはデフォルトで現在のドメイン名になります。
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')
3 回目のテストから得られた結論は上記に要約されています。もう一度読んでみてください、ここではあまり説明しません。

2. ドメイン パラメータでは、親ドメイン名とそれ自体を設定できますが、サブドメイン名を含む他のドメイン名を設定することはできません。設定しない場合、Cookie は機能しません。

次に、Cookie のスコープ:

Cookie のスコープは、ドメイン自体とそのドメイン内のすべてのサブドメイン名です。

推奨学習:

PHP プログラミングの入門から熟練度まで

以上がPHPでCookieのスコープを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。