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

HPを見ているブラウザーが cookie が有効かどうか
しらべたいのですが、よくある cookie の書き込みと
読み出しのサンプルを使って以下のようなスクリプトを
考えました。


$cookie_flg = 1;

print &setCookie("CHECK", $cookie_flg);

# Cookie の値を得る

&getCookie();
$cookie_flg = $COOKIE{'CHECK'};

if ($cookie_flg eq '') {

$cookie_flg = 0; # Cookie が使えない

}

return $cookie_flg;


・・・これでわかるでしょうか?
ブラウザーでは実際に、cookie が使える状態
なのですが、アクセス最初の1回目は 0 が返って
くるのです。
( 2回目以降は 1 が返ってきて望みどおりです )
ひょっとして、cookie の仕様として、書き込んで
から、すぐに読み出そうとしても、読めないもの
のでしょうか?
それとも、cookie を書き込んだあと、一旦、
print "Content-type: text/html\n\n";
で閉めてから、読み出さないといけないとか???
こんなんで、何日もうんうん考え込んでます。
ベテランの方には、あまりに馬鹿馬鹿しい問題
なのかもしれませんが・・・

A 回答 (1件)

ご推測の通り、Cookieを書き込んでから同じプロセスでそのCookieを読み込むことはできません。


CookieはCGIが呼び出されたときに環境変数の一つとして読み込まれます。ですからサンプルでは、書き込む以前にすでにCookieが読み込まれています。

ブラウザのCookieが有効になっているか否かは、別のCGIかJavaScriptであらかじめ書き込んでおく必要があります。

この回答への補足

ありがとうございました。
アドバイスいただけたので、自作CGIでよくよく
確認したところ、まさしくおっしゃるとおりでした。
これでようやく納得しました。。。

補足日時:2002/03/04 15:43
    • good
    • 0

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