• ベストアンサー

PHP cookieの値が更新されないときがある

setcookie()を使ってcookieの値を更新したのですが、反映されない時があります。 クッキーに自作のセッションIDみたいなIDを保管して、そのIDを訪れる度に更新しようとしています。セッションIDなら session_regenerate_id();を使うと、更新されますよね?それと同じように自作IDに関しても、更新したいと思っています。 クッキーがうまく更新されていない時もsetcookie()の戻り値はtrue (1)です。どうしたら、session_regenerate_id();みたいにIDを更新して、反映させることができますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

setcookie("TestCookie", $value, time()+3600, "/"); のようにパスをルートで設定を追加してみては。

newtgecko
質問者

お礼

パスを付けることでいまは問題なく動いています。ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>クッキーに自作のセッションIDみたいなIDを保管して これはクライアントのjavascriptか何かを想定していますか? 仕様がわからないとなんとも言えません サーバーでセットされたクッキーはhttpのヘッダで送られるので クライアント側で設定したクッキーがサーバーに伝わるのは 次回アクセスしたときです。 <?PHP setcookie("test", 1); print 1; setcookie("test", 2); print 2; ob_flush(); setcookie("test", 3); print 3; ?> <script> document.write(document.cookie); </script> 例えば上記例だと、クッキー「test」に2を代入したあとでフラッシュして httpの処理がはいったためその後にセットした3はクライアントに送られていません

newtgecko
質問者

お礼

>仕様がわからないとなんとも言えません そうですよね ご回答有難うございました

すると、全ての回答が全文表示されます。

関連するQ&A