新規記事投稿 フォロー記事投稿 記事のキャンセル
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をまねてこういうような記述にしてみたんですが・・・。 > >何が足りないか教えてください。それとも根本的に何か違う?