質問: お世話になります page1.phpとpage2.phpは同じフォルダに存在し、 page1.phpは ``` cookie keyvalue={$_COOKIE['keyname']} 次 EOM; ?> ``` page2.phpは ```  cookie keyvalue={$_COOKIE['keyname']} 前 EOM; ?> ``` としました。 page1でkeynameというクッキーにkeyvalueという文字列を入れ、page2でクッキーを削除し、 それぞれのページでそれぞれの処理結果を cookie keyvalue={$_COOKIE['keyname']} という形で表示させました。 すると、page1で処理結果が cookie keyvalue= となり、page1内のリンク遷移先のpage2で処理結果に cookie keyvalue=keyvalue となっています。 page2内のリンクでpage1へ戻っても、上記の通りの結果でした。 setcookieの格納の結果がすぐに反映されず、遷移後に反映されるのは不可解です。 phpのバージョンは7.2です。 どうすれば、すぐに反映されますか。
回答: > > setcookieの格納の結果がすぐに反映されず、遷移後に反映されるのは不可解です。 > > > 仕様です。 setcookie に > > 一度クッキーが送信されると、次のページのロードからは $_COOKIE 配列によってクッキーにアクセスできます。 > > > とあるように次回のページロード時に $_COKKIE に反映されます。 $_COKKIE は、php 実行開始時にHTTPヘッダより受け取った cookie の内容なので、setcookie を実行したら即時に $_COKKIE の内容が変わるわけではありません。