web-dev-qa-db-ja.com

Cookieパスを「/」に設定しても、サイト全体でCookieにアクセスできるようにはなりません

Php cookieパスを「/」に設定すると、ドメイン内のすべてのサブディレクトリでは機能せず、現在のディレクトリでのみ機能するのはなぜですか。

cookieは次のように設定されます:

setcookie("name", "val", expire_time, "/");

それはただ働きたくないだけです。

15
user161903

ドメインパラメータを含めてみてください:

setcookie("name", "val", expire_time, "/", ".domain.com");
// don't forget the prefixing period: .domain.com

これにより、「domain.com」のすべてのsudomainが有効になります

26
jlb

ローカルホストでテストしていますか?その場合、$domainの値としてnullを渡す必要があります。

23
troelskn

Cookieパスを/に設定すると、ドメイン全体で使用できるようになります。そのようにCookieを設定し、それが送信されない場合は、他に問題があります。

FirefoxでWebDeveloperアドオンを使用してみてください。利用可能なCookieの詳細が表示されます。多分それはあなたが問題を診断するのを助けることができます。

7
Atli

パーティーに遅れて、私は知っています。しかし、私は自分の問題がかなりばかげていることに気づきましたが、完成のために投稿します:

Cookieの有効期限にtime()を追加するのを怠っていたので、すぐに有効期限が切れていました。

有効期限はtime()+秒である必要があります

3
Phil LaNasa