perl や PHP で Cookie(クッキー)を読み書きする方法

2009年11月15日 21:56 perl や PHP で Cookie(クッキー)を読み書きする方法

Cookie の出力

Cookie は HTTPヘッダに出力することで、アクセスしたユーザーのブラウザ毎に書き込むことができます。

Cookie を書き込む際の書式は、

name=value; expires=Sun, 15-Nov-2009 23:59:59 GMT; domain=www.abe-tatsuya.com; path=/cgi-bin/; secure

という感じです。

name
必須。任意の「name」に対する値「value」を指定します。
例) loginid=abetatsuya
expires
Cookie の有効期限を指定します。省略するとブラウザを閉じるまでの間が有効期限になります。
また、過去の時刻を指定すると、該当 Cookie を削除します。
domain
Cookie を有効にするドメイン名を指定します。省略可。
path
Cookie を有効にするパスを指定します。省略すると、Cookie を書き込んだファイルのあるパスとなります。
secure
指定すると、SSL での通信時のみ Cookie をやり取りします。

この情報を、Set-Cookieヘッダとして出力すれば良いので、 perl の CGI の場合には、

print qq|Set-Cookie: loginid=abetatsuya; |;
print qq|expires=Sun, 15-Nov-2009 23:59:59 GMT; |;
print qq|domain=www.abe-tatsuya.com; path=/cgi-bin/; secure\n|;
print qq|Content-type: text/html; chearset=UTF-8\n|;
print qq|\n|;
#-- 以下、ページを出力

という感じにすれば良いわけです。

PHP の場合は、その名の通り setcookie っていう関数が用意されてるので、非常に楽チンですね。

setcookie("loginid","abetatsuya",time,"/cgi-bin",
 "www.abe-tatsuya.com",true);

こんな感じで書けばOKです。
詳細はPHP: setcookie - Manual等を参照。

複数の Cookie を書き込みたい場合は、複数回 Set-Cookie ヘッダを出力すれば大丈夫です。

Cookie の読み込み

書き込んだ Cookie を読み込みたい場合は、環境変数 HTTP_COOKIE を参照します。

perl であれば $ENV{'HTTP_COOKIE'} 内に「name=value」という形式で入っています。
複数の値が指定されている場合は「; 」区切りで「name1=value1; name2=value2」のように入ります。

「; 」で split した後にさらに「=」で split して、$COOKIE{'name'} = value のような連想配列に入れると使い易いかと思います。

PHP の場合は、$_COOKIE['name'] という変数内に、そのまま指定した値が入ってきます。

Twitterつぶやく

Twitter始めました。Followはお気軽にどうぞ。

関連するブログ記事
スポンサード リンク
カテゴリー
PHP | perl/CGI
タグ
CGI | Cookie | HTTPヘッダ | perl | PHP | Set-Cookie | setcookie | 環境変数
現在位置
TOP > Web制作技術 > perl/CGI > perl や PHP で Cookie(クッキー)を読み書きする方法
前のブログ記事
MT4 で TagSupplementals プラグインを利用して関連ブログ記事(エントリー)一覧を表示する方法 [2009年11月14日 23:59]
次のブログ記事
MT4 でカテゴリやフォルダを好きな順番に並べ替えられる Sort Categories And Folders プラグイン [2009年11月16日 21:44]

トラックバック(0)

このブログ記事に対するトラックバックURL:

コメント(0)

コメントする


画像の中に見える文字を入力してください。

 

このブログについて

阿部辰也

Webコンサルタントやシステムエンジニア、執筆業などをやっている、グッドホープ代表・阿部辰也のブログです。
Web技術系のTipsから仕事の話、趣味の話まで色々と。
人生は所詮生まれてから死ぬまでの壮大な暇つぶし。
だったら有意義に暇をつぶして生きましょー。

Twitter: @t_abe
読書メーター: ID:t-abe

このブログのサイトマップ
このブログのはてなブックマーク数

Feed/RSS購読

タグクラウド

最近のトラックバック

阿部辰也の著書

77のキーワードで知る インターネットで稼ぐ 図解 ブログ・メルマガ・Webサイト構築の基本

77のキーワードで知る インターネットで稼ぐ 図解 ブログ・メルマガ・Webサイト構築の基本

頑張って書いたのに、出版後すぐに出版社が倒産して印税も貰えずじまいで俺涙目(笑)。

Powered by Movable Type 4.261

スポンサード リンク

はてなブックマーク



あわせて読みたい

t-abeの今読んでる本

t-abeの最近読んだ本

t-abeの今やってるゲーム

t-abeの最近やったゲーム