25

私が作成したものでもPHPで作成したものでもない一部のアプリケーションは、ドメイン「www.domain.com」のCookieを作成します。

私はそのクッキーを置き換えようとしています。だからphpで私はしました:

setcookie('mycookie','mydata',time() + 2*7*24*60*60,'/','www.domain.com', false);

ただし、結果のCookieはドメイン「.www.domain.com」に対して作成されます。ドット「。」に注意してください。ドメインの前に。

したがって、それを置き換えるのではなく、別のCookieを作成します。私に何ができる?

4

4 に答える 4

41

この問題はここでも解決されます: https ://www.php.net/manual/en/function.setcookie.php

jahによるコメントを参照してください:

Cookieを単一のホストに制限する場合は、ドメインパラメータを空の文字列として指定します

.domain.comドメインとして試すこともできます。末尾のドットは、のすべてのサブドメインのCookieを許可し、 -cookieをdomain.com上書きする可能性がありますが、最初に上記の解決策を使用します。www.

于 2010-02-18T10:14:18.547 に答える
7

ドメインを指定する場合は、RFC 2109に従い、ドメインの前にドットを付ける必要があります。それ以外の場合、クライアントはそれを行います。ただし、ドメインをまったく指定しない場合、クライアントはリクエストのドメインを取得します。

于 2010-02-18T10:29:39.763 に答える
1

これはバグのようではありませんか?クッキーをそのままにしたい場合はどうすればよいwww.example.comですsomething.www.example.comか?例えばパフォーマンスのために。すべての[sub][sub]サブドメインのワイルドカードではなく、Cookieドメインを指定できるはずです。それが引き起こすバグの量は言うまでもありません。たとえば、phpでCookieを設定し、JavaScriptでCookieを削除しようとします(これは愚かなドットを追加しません)。

于 2019-09-21T16:08:48.573 に答える
-1

同じ名前でドメインが異なる他のCookieをいくつか作成してみてください。例:

setcookie('mycookie','mydata1',time() + 2*7*24*60*60,'/','www.domain.com', false);
setcookie('mycookie','mydata2',time() + 2*7*24*60*60,'/','www.domain.com', false);
setcookie('mycookie_top','mydata1',time() + 2*7*24*60*60,'/','domain.com', false);
setcookie('mycookie_top','mydata2',time() + 2*7*24*60*60,'/','domain.com', false);

次に、Firebugでこれらのコマンドによって作成されたCookieを調べます。ダブルCookieを取得し続けた場合、これはPHPのバグである可能性があります。また、javascriptコードでCookieを設定してみて、同じ問題が発生するかどうかを確認してください。

于 2010-02-18T03:53:51.347 に答える