![]() |
|||
| | HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 | | |||
|
HOME >> Cookie の使い方
■ Cookie について
Cookie はブラウザー上にデータを記録しておくことが出来る機能です。 データは「名前=値」の形で記録して、次回アクセス時に記録したデータを読み出して処理を行ないます。 記録したデータを読みこむことで、訪問者を特定してログイン処理をスキップしたり、訪問履歴を参照したり、アクセスカウンターとして利用することも出来ます。 ■ Cookie の書込み
Cookie にデータを書き込む場合は、「Set-Cookie: 名前=値; 名前=値; ・・・」の形式でHTTPのヘッダ部に記述してください。 クッキーをセットする場合には、クッキーの有効期限を設定しましょう。 有効期限を設定しない場合には、ブラウザーを閉じるとクッキーが消えてしまう為、次回アクセス時にクッキーを読みこめません。 有効期限は、「expires=DATE」の形で指定します。「DATE」の内容はGMTの時間データです。 [DATEの書式] Sun, 21-Feb-2002 02:22:54 GMT これは、どこから読みだした際に読み出しが可能となるかを設定するものです。 省略時は、記録した場所がセットされます。 [書式] path=データのパス クッキーがどのドメインで有効になるかどうかを設定します。 省略時は現在のドメインがセットされます。 [書式] domain=ドメイン名
# 有効期限を3時間に指定
($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*3); @mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); $date = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT", $week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec); print >>END_HTML; Content-Type: text/html Set-Cookie: domain=sample.com; path=/; expires=$date; login=user; <html> ■ Cookie の読み込み
クッキーを読みこむ場合には、環境変数 $ENV{'HTTP_COOKIE'} からクッキーを取得できます。 取得したクッキーは、「 名前=値;名前=値;名前=値 ・・・ 」 の形となっていますので これを扱いやすい形(ハッシュ形式) にして利用します。
$cookies = $ENV{'HTTP_COOKIE'}; ← ブラウザーからクッキーを取得する
ここでは、「$COOKIE{名前} = 値」 の形のハッシュ形式にしてクッキーデータを取り出しています。
# 取得したクッキーを整形する @pairs = split(/;/, $cookies); foreach my $pair (@pairs) { my ($name, $value) = split(/=/, $pair); $name =~ s/ //g; $COOKIE{$name} = $value; } ■ Cookie の削除
ブラウザーに書き込んだクッキー情報を削除するには、有効期限に過去の時刻を指定すると削除することが出来ます。 [ 過去の時刻でクッキーを書き込む(クッキーの削除) ]
print >>END_HTML;
Content-Type: text/html Set-Cookie: name=; expires=Thu, 1-Jan-1970 00:00:00 GMT; <html>
|
|||||||||||||||||||||||||||||||||||||||