M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2010年5月27日 12:15

PerlのCGI.pmで複数のCookieを消す

このエントリーをはてなブックマークに追加 mixiチェック

CGI.pmのみ使っているようなタイトな環境で、Cookieを消すというやり方、正直いって知らんかった。最近Cookieってセッション番号ぐらいしか焼いていないし、しかもシステムが勝手に焼くしな……

こんな風にしてみた。

Finename: delete_cookie.cgi

#!/usr/bin/perl
 
use strict;
use warnings;
use CGI;
my $q = new CGI;
my @del_cookies = ('val1', 'val2');
my $cookies;
foreach my $key ( @del_cookies ){
push @$cookies,
     $q->cookie( -name    => $key,
                 -value   => '',
                 -expires => '-1y',
     );
};
print $q->header(-cookie=>$cookies);
exit;
__END__

ちなみに、これブラウザで実行しても見た目なにも表示されない。Cookieを消せっていう指示が入っているHTTPヘッダが見えないところで受信されているっていうことです。

CGI.pm推奨のCookieの使い方は、一つのCookieで、複数の値を入れるタイプなんだけれども、焼かれるCookieは、必ずしもCGI.pm推奨のCookieの使い方に倣っていない場合がある。

今回のCookie削除は、複数のCookieを削除するタイプです。ループしてやらなきゃいけないのね……

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3234

コメントする