删除服务器和客户端Perl CGI上的Cookie /会话

时间:2015-02-25 04:59:26

标签: perl session cookies cgi

我遇到了我的注销页面没有删除cookie的问题。谁能告诉我什么错了?我试图在服务器和客户端删除它。在下面,我提供了我的代码示例。

#!/usr/bin/perl
use CGI;
use CGI::Session;
use CGI::Carp qw (fatalsToBrowser);

my $q = new CGI;
my $sid = $q->cookie("Cool-123") || undef;
$session = new CGI::Session(undef, $sid, {Directory => '/tmp'});
$session->delete();
my $cookie = $q->cookie(Cool-123 => '');
print $q->header( -cookie=>$cookie ); 

print <<END;    

<!doctype html>
<html>

<head>
<meta charset="UTF-8">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

<!-- Javascript/Jquery
=============================================================== -->
<script src="/~js/redirect.js"></script>

1 个答案:

答案 0 :(得分:0)

我不完全确定你在这里遇到什么问题。看起来这对于注销脚本可以正常工作。您是否担心cookie不会被删除?删除会话对象后,cookie不会使会话有效,因此cookie无关紧要。我编写了我在网页上使用的代码,大部分都是这样的,它适用于注销脚本。唯一的主要区别是我使用数据库而不是文件来存储会话对象。它不会删除cookie,但它会使该cookie不再有效。