【问题标题】:CGI::Cookie fetch does not find cookieCGI::Cookie 提取未找到 cookie
【发布时间】:2013-09-19 18:47:20
【问题描述】:

我在设置和获取 cookie 数据时遇到问题。

当我调用以下方法时:

%cookies = CGI::Cookie->fetch;

并使用 Data::Dumper 打印出哈希:

print Dumper(%cookies);

我之前创建的 Cookie:

$sessioncookie = CGI::Cookie->new(-name=>'SID', -value=>"$sid", -expires=>'+1M', -path=>'/member/');
print $cgi->header(-cookie=>$sessioncookie);

不显示在输出中。但它显示在我的浏览器 cookie 列表中! 所有值都已设置,看起来就像一个普通的 cookie。但实际上不可能。

有人知道我做错了什么吗?检索 cookie 数据是否有严格的顺序?

我也用cgi.pm提供的方法试过了,也没用。

请帮帮我!

【问题讨论】:

    标签: perl session cookies cgi


    【解决方案1】:

    根据CGI::Cookie中“路径”的帮助

    1. 路径

      如果您提供 cookie 路径属性,浏览器将根据您的 返回 cookie 之前的脚本 URL。例如,如果您指定 路径“/cgi-bin”,则cookie将返回给每个脚本 “/cgi-bin/tally.pl”、“/cgi-bin/order.pl”和 “/cgi-bin/customer_service/complain.pl”,但不是脚本 “/cgi-private/site_admin.pl”。默认情况下,路径设置为“/”,这样所有 您网站上的脚本将收到 cookie。

    所以我会暂时删除路径并重试。

    与 perl 一样,如果您不使用严格和警告,请打开它们

    【讨论】:

    • 您好,感谢您的回答!问题不在于 cookie,而在于创建的会话对象和 cookie 从中获取 sid。我不知道确切的原因,但我选择了导致此问题的 mysql 会话驱动程序。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 2022-01-10
    • 1970-01-01
    相关资源
    最近更新 更多