新規記事投稿
フォロー記事投稿
記事のキャンセル
From: Yasu.F
<yasuf@ariake.or.jp>
Subject: Re: クッキーの仕方
Date: 1996/11/09 13:56:29
Reference: mesh.program/00130
わたしもCookieは全然使ったことはないんですが^^;
11月9日に、なおきさんは書きました。
>少しずつですけど
>まずはセットクッキーについて
>
>例えばこんなふうに(にあさんのを見ながら)
>
>$output = "Set-Cookie: ";
>$output .= "HTTP_USER_AGENT=$ENV{'HTTP_USER_AGENT'}";
>$output .= "; REMOTE_ADDR=$ENV{'REMOTE_ADDR'}";
>$output .= "; REMOTE_HOST=$ENV{'REMOTE_HOST'}";
>$output .= "; SERVER_NAME=$ENV{'SERVER_NAME'}";
>
>print $output;
1個のSet-Cookie:ヘッダでは1個のデータしか送れないようです
(この辺りNetscape社の文書を読んでもあまりはっきりしない)。
ですから
Set-Cookie: foo=bar
Set-Cookie: hoge=uge
...
のようにする必要があります。
# User Agentにはいろんな記号類が含まれることが多いので
# ちゃんとエスケープしてやらないといけないでしょう^^;
>
>やってみたんですが$ENV{'HTTP_COOKIE'}には
>ナンにも入ってこない。
一つには、同じCGIから参照したかどうかということがあります。
Set-Cookie:にはpathというパラメータがあり、これが省略
された場合はCookieをセットした時と同じ場所を参照する
時だけそれを返すようになります。これを避けるには、
Set-Cookie: name=value; path=/
のような記述を加えて下さい(別にrootじゃなくてもいいけど)。
もう一つ、expiresがないと、ブラウザを終了した時点で
(when user's session endsとある)Cookieは破棄される
ようになっています。実際に使う場合はこの設定も必要
になってくるでしょう。値にはCookieを破棄する時刻を
指定します。
>
>一回うまく行ったような気がしたんですが(これとは違う記述で)
>にあさんのhttp.plをまねてこういうような記述にしてみたんですが・・・。
>
>何が足りないか教えてください。それとも根本的に何か違う?