Perl 为什么我无法在CGI脚本中获取cookie?
我正在CGI脚本中设置cookie并尝试读取它,但读取失败。这可能是什么原因造成的 这是我的剧本:Perl 为什么我无法在CGI脚本中获取cookie?,perl,cookies,Perl,Cookies,我正在CGI脚本中设置cookie并尝试读取它,但读取失败。这可能是什么原因造成的 这是我的剧本: use strict; use warnings; use CGI; use CGI::Cookie; use CGI qw/:standard/; use CGI; my $cgi = new CGI; my $cookie1 = $cgi->cookie( -name => 'ID', -value => 123456 ); my $cookie2 = $cgi-&g
use strict;
use warnings;
use CGI;
use CGI::Cookie;
use CGI qw/:standard/;
use CGI;
my $cgi = new CGI;
my $cookie1 = $cgi->cookie( -name => 'ID', -value => 123456 );
my $cookie2 = $cgi->cookie( -name => 'NAME', -value => 'ABCDEF' );
print "Cookies:\n" . header( -cookie => [ $cookie1, $cookie2 ] );
my $id = $cgi->cookie('ID') || 'No ID cookie';
my $name = $cgi->cookie('NAME') || 'No Name cookie';
print "ID-Cookie :$id\n";
print "Name-Cookie :$name\n";
my %cookies = CGI::Cookie->fetch;
my $count = 0;
for ( keys %cookies ) {
$count++;
print "Cookie[$count]: $cookies{$_}\n";
}
print "Total cookies: $count\n";
输出:
Cookies:
Set-Cookie: ID=123456; path=/
Set-Cookie: NAME=ABCDEF; path=/
Date: Thu, 09 Oct 2014 19:05:55 GMT
Content-Type: text/html; charset=ISO-8859-1
ID-Cookie :No ID cookie
Name-Cookie :No Name cookie
Total cookies: 0
我还尝试了
$cookies{'ID'}->value
。这也不起作用。我不确定您是否正确设置了cookie。尝试:
use strict;
use warnings;
use CGI qw/:standard/;
use CGI::Cookie;
my $cookie1 = CGI::Cookie->new(-name => 'ID',-value=>123456);
my $cookie2 = CGI::Cookie->new(-name => 'NAME',-value=>'ABCDEF');
查看文档以了解更多信息 cookie是提供给web浏览器的字符串,它将在将来的请求中返回给web服务器,但看起来不像您使用了浏览器。看起来你甚至没有把脚本作为CGI脚本来执行 脚本创建一个HTTP头(纯粹出于运气,根据
Cookies:
位判断),该头指示浏览器设置一些Cookies,然后显示收到的Cookies
当浏览器第一次获取此页面时,它会指示浏览器设置两个cookie,并且没有获取任何cookie
浏览器第二次获取此页面时,会指示浏览器设置两个cookie,并从浏览器接收两个cookie
简体字:
use strict;
use warnings;
use CGI qw/:standard/;
my $cgi = CGI->new;
my $cookie1 = $cgi->cookie( -name => 'ID', -value => 123456 );
my $cookie2 = $cgi->cookie( -name => 'NAME', -value => 'ABCDEF' );
print header( -type => 'text/plain', -cookie => [ $cookie1, $cookie2 ] );
my $id = $cgi->cookie('ID') || 'No ID cookie';
my $name = $cgi->cookie('NAME') || 'No Name cookie';
print "ID-Cookie: $id\n";
print "Name-Cookie: $name\n";