web-dev-qa-db-ja.com

php setcookieドメイン

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

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

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

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

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

22
Nathan H

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

jahのコメントを参照:

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

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

39
Select0r

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

6
Gumbo

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

0
adrianTNT