|
Cookie の発行 |
Cookie の発行の例を簡単なサンプルで見てみます
【書式例】
print <<"HTML";
Content-Type: text/html
Set-Cookie: 名前=内容; 有効期限;";
HTML
【例1】
print <<"HTML";
Content-Type: text/html
Set-Cookie: name=tanaka; expires=Tue, 1-Jan-2030 00:00:00 GMT;
HTML
【例2 複数発行する】
print <<"HTML";
Content-Type: text/html
Set-Cookie: name=tanaka; expires=Tue, 1-Jan-2030 00:00:00 GMT;
Set-Cookie: pass=0123; expires=Tue, 1-Jan-2030 00:00:00 GMT;
HTML
実行結果2 (2回目以降の実行) |
data2=BBB; data1=AAA
|
実行結果の data2=BBB; data1=AAA という部分が実際にクッキーとして保存された
データとなっており、一度目のアクセス時は保存しているクッキーデータが無い為、
何も表示されませんが、2回目に実行すると、$ENV{'HTTP_COOKIE'}の内容が表示
される為、実行結果2のようになります。
実際に使う時は、この環境変数から取得できる値を分解して使います。
Cookie は、ブラウザのメニューから削除する事ができます。
上記例では2回書き出しており、実行結果にあるように ; で要素が区切られています。
半角スペースが入っている事も、読み出しの区切りの際に注意しなくてはいけません。
有効期限を省略した場合、クッキーは発行されますがハードディスク内には保存されません。
その為、省略時はブラウザを閉じた時点で発行したクッキーは無効になります。
|
Cookie の読み出し |
Cookie を読み出して使う方法です
Cookie の情報は環境変数 $ENV{'HTTP_COOKIE'} に入っていますので、
これを区切り文字で分けて連想配列に入れて使ってみます。
今回はクッキーの発行を2回行い、読み出し時に連想配列に入れて表示していますが、
1回の発行で例えば data1=AAA,BBB,CCC,DDD; などとして、後でsplitで区切って使って
もかまいません。
要素と要素の間は上記 【Cookieの発行】の実行結果2にあるように半角スペースが入って
いますので、それも除去しないと連想配列で正しく使えません。
|
|
|
関連項目
・ CGIの作成に関する用語
・ CGI作成に関するFAQ
|
|