« [Cookie] 記録・セットする (Perl, CGI::Cookie) | メイン | [Cookie] 値を取得する (Perl, CGI::Cookie) »

カテゴリー:Cookie 

[Cookie] 削除する (Perl, CGI::Cookie)

このエントリーを含むはてなブックマーク  livedoorクリップ  [Cookie] 削除する (Perl, CGI::Cookie)をdel.icio.usに追加  [Cookie] 削除する (Perl, CGI::Cookie)をYahoo!ブックマークに追加  [Cookie] 削除する (Perl, CGI::Cookie)をニフティクリップに追加

Cookieを削除するには、単純に有効期限を現在よりも過去に設定してやれば良い。

#!/usr/bin/perl

;#
;#Cookie削除
;#

use strict;
use CGI::Cookie;

#-- ヘッダ出力 --#
print delCookie('id');
print "Content-type: text/html\n";
print "\n";

#-- 本文出力 --#
print qq|<html>\n|;
print qq|  <head><title>Cookieテスト</title></head>\n|;
print qq|  <body><h1>Hello World</h1></body>\n|;
print qq|</html>\n|;


#---------------------------------------
#セッションIDをCookieから削除
#---------------------------------------
sub delCookie{
  my $name    = shift || return;          #Cookie名
  my $domain  = shift || 'ichikoro.com';  #取得可能なドメイン
  my $path    = shift || '/';             #取得可能なパス
  
  #-- Cookie値削除 --#
  my $cookie1 = new CGI::Cookie(-name => $name
                , -value   => ''
                , -expires => 'Fri, 5-Oct-1979 08:10:00 GMT'
                , -domain  => $domain
                , -path    => $path
        );

  return("Set-Cookie: $cookie1\n");
}

○実行結果


Set-Cookie: id=katsube; domain=ichikoro.com; path=/; expires=Fri, 5-Oct-1979 08:10:00 GMT
Content-type: text/html

<html>
<head><title>Cookieテスト</title></head>
<body><h1>Hello World</h1></body>
</html>


注意点としては、『過去』がブラウザ上(パソコン上)の時間に左右される点である。もしもパソコンの時間が1910年などになっていた場合、上記のプログラムは期待通りの結果を得ることが出来ないが、世界中のほとんど、9割以上のユーザーにはこれで対応できるハズだ。

もし厳密にやるのであれば、JavaScriptなどでユーザーのパソコンの時間を取得し、そこから減算をしてやれば良い。そこまでする必要があるかどうかは疑問ではあるが。




トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/391

この一覧は、次のエントリーを参照しています: [Cookie] 削除する (Perl, CGI::Cookie):

» [Cookie] 記録・セットする (Perl, CGI::Cookie) from CGI(Perl)例文集
Cookieに書き込む方法は、CGIなどでHTTPヘッダに埋め込むか、HTMLの... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

VPSレンタルサーバー




クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.