• 締切済み

クッキーについて質問が御座います

phpのクッキーについての質問です。 皆様どうぞよろしくお願い致します。 phpでのクッキーを利用したプログラムを始めて 作成しようと思っているのですが、 /* test1.php */ <form method="POST" action="cookieTest.php"> <input type="text" name="id" /> <input type="submit" value="送信" /> </form> /* cookieTest.php */ $id = $_POST['id']; setcookie("cookieId",$id, time() + 7200); // クッキーのセット echo $_COOKIE["cookieId"]; 上記のようにtest1.phpからフォームにてcookieTest.phpへPOSTにて「aaaaa」という文字を送信した場合にcookieTest.phpにて、 echoにてクッキーが表示できません。 その後ブラウザの更新ボタンを1度押すと「aaaaa」が表示されるようになります。 更新を押さなければクッキー内容が表示されないのはどのような原因が考えられますでしょうか?どうぞ皆様よろしくお願い致します。

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

$_COOKIEにはブラウザから送られたクッキー情報が入るのでその動作で正常です。 1回目 ブラウザがサーバへリクエスト PHPが$_COOKIEをセットするが1回目でクッキーは空なのでセットされない cookieTest.phpを実行 setcookie()でブラウザへSet-cookieヘッダを送信 echo $_COOKIEするが当然$_COOKIEはまだ空のまま ブラウザがクッキーを受け取る 2回目 ブラウザがサーバへリクエスト PHPが$_COOKIEをセットする。2回目でクッキーが存在するので値がセットされる

singo333333
質問者

お礼

ご回答ありがとうございます。 そういえばクッキーはクライアント側のパソコンにて 保存される物でしたね。 cookieTest.phpの処理が終わった後に クライアント側のヘッダか何かでクッキーに登録されるので 2回目からのcookieTest.php処理の時にクライアントのPCにて前回登録された クッキー内容がecho $_COOKIEされるという理解でよろしいでしょうか。 ご回答本当にありがとうございました。

関連するQ&A