とあるエンジニアの闇歴史帳

コピペで使える便利Wiki ※現在構築中です。

ユーザ用ツール


perl:cgi_cookie_delete

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

perl:cgi_cookie_delete [2017/12/14 20:18]
perl:cgi_cookie_delete [2020/06/23 14:10] (現在)
行 1: 行 1:
 +====== Cookieを削除する(CGI::Cookie) - Perl ======
 +~~socialite~~
 +<note important>この記事は2006年10月17日に書かれたものです。</note>
 +
 +Cookieを削除するには、単純に有効期限を現在よりも過去に設定してやれば良い。
 +
 +===== サンプル =====
 +<code perl>
 +#!/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");
 +}
 +</code>
 +
 +===== 実行例 =====
 +<code>
 +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>
 +</code>
 +
 +注意点としては、『過去』がブラウザ上(パソコン上)の時間に左右される点である。もしもパソコンの時間が1910年などになっていた場合、上記のプログラムは期待通りの結果を得ることが出来ないが、世界中のほとんど、9割以上のユーザーにはこれで対応できるハズだ。
 +
 +もし厳密にやるのであれば、JavaScriptなどでユーザーのパソコンの時間を取得し、そこから減算をしてやれば良い。そこまでする必要があるかどうかは疑問ではあるが。
 +
 +===== 関連書籍 =====
 +{{amazon>jp:4797336803}}
 +<html><p style="clear:both"></p></html>
 +
 +{{amazon>jp:4274068765}}
 +<html><p style="clear:both"></p></html>
 +
 +{{amazon>jp:B00ISP0OM8}}
 +<html><p style="clear:both"></p></html>
 +
 +{{tag>CGI・Perl例文集 Perl CGI Cookie}}
 +~~socialite~~
  

関連ページ