アプリ版:「スタンプのみでお礼する」機能のリリースについて

setcookie()を使ってcookieの値を更新したのですが、反映されない時があります。

クッキーに自作のセッションIDみたいなIDを保管して、そのIDを訪れる度に更新しようとしています。セッションIDなら session_regenerate_id();を使うと、更新されますよね?それと同じように自作IDに関しても、更新したいと思っています。

クッキーがうまく更新されていない時もsetcookie()の戻り値はtrue (1)です。どうしたら、session_regenerate_id();みたいにIDを更新して、反映させることができますか?

A 回答 (2件)

setcookie("TestCookie", $value, time()+3600, "/");


のようにパスをルートで設定を追加してみては。
    • good
    • 3
この回答へのお礼

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

お礼日時:2014/08/30 21:26

>クッキーに自作のセッション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はクライアントに送られていません
    • good
    • 0
この回答へのお礼

>仕様がわからないとなんとも言えません
そうですよね

ご回答有難うございました

お礼日時:2014/08/30 21:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!