2012-04-06 19 views
0

私は簡単なコードをtest_cookie.phpに書き、クッキーを扱うことができました。クッキーが何かに設定され、私は($ _GETを使用して)何か他のものに値を設定したらクッキー応答を迅速に取得する方法はありますか?

if(isset($_GET['data'])) { 
    setcookie('test_cookie', $_GET['data'], time()+60*60*24*30); 
} 
echo 'Cookie name is: ' . $_COOKIE['test_cookie']; 

さて、その後、コンテンツの価値は急速に変化しません。新しい価値が生まれたら、私は再びそれをリフレッシュしなければならない。ここで

は絵の例である:

Cookie Problem

答えて

3

はい - あなたはsetcookie()を呼び出すときだけ明示的に設定します。

if(isset($_GET['data'])) { 
    setcookie('test_cookie', $_GET['data'], time()+60*60*24*30); 
    $_COOKIE['test_cookie'] = $_GET['data']; 
} 
echo 'Cookie name is: ' . $_COOKIE['test_cookie']; 

をあなたのコードは、 "すぐに" 動作しない理由があるためであります$_COOKIEには、現在のリクエストでブラウザから送信されたクッキーが含まれていますが、setcookie()はこの応答でbroswerにクッキーヘッダーを送信します。リクエストはレスポンスの前に来るので、あなたが設定したばかりのクッキーを見るために次のリクエストを待つ必要があります。上記のコードは、私たちが今送信したクッキーがこのリクエストで受け取られたと思わせることによってこれを回避します。

+0

ありがとうございました。 – Thompson

関連する問題