【问题标题】:How can I update cookies after having it set on the header in a Perl CGI program?在 Perl CGI 程序的标头上设置 cookie 后如何更新 cookie?
【发布时间】:2010-02-12 15:23:58
【问题描述】:

我在用户登录应用程序时设置了 cookie。然而,当用户更新他的个人资料时,我需要修改它。谁能告诉我如何更新现有的 cookie? 在此先感谢。(我正在使用 perl)。

【问题讨论】:

    标签: perl cookies


    【解决方案1】:

    CGI::Cookie 就是你所需要的。

    要将 cookie 发送到您的应用程序:

    my %cookies = CGI::Cookie->fetch;
    my $foo = $cookies{foo}->value;
    

    如果您使用 CGI.pm 生成标头,则发送 Set-Cookie 标头只需要传入 CGI::Cookie 对象:

    my $q = CGI->new;
    print $q->header( -cookie => $foo );
    

    否则,请使用您正在使用的 Web 应用程序框架提供的任何标头操作接口。

    【讨论】:

    • 当我尝试这样做时,我明白了: Set-Cookie: test.jpg 日期:Thu, 11 Feb 2010 18:44:24 GMT Content-Type: text/html; charset=ISO-8859-1 打印在页面上。我无法更改标题。因此,我将其打印在页面上,我想要一种无需打印即可修改 cookie 的方法。
    • 如果你想修改一个cookie,你必须设置一个cookie header。如果其他东西正在设置您的标头并且您无法修改它,您需要认真重新考虑您的应用程序架构。更改 cookie 的唯一其他方法是在 Javascript 中在客户端进行。
    • Friedo,当你说我可以使用 javascript 做到这一点时,你是什么意思?请给我一个很好的例子吗?
    • @zeina: 在你的 html 中发出类似<script>document.cookie='foo=bar; expires=Thu, 11 Feb 2010 08:00:00 UTC; path=/'</script>的内容
    • 谢谢大家,这个链接帮助了我:quirksmode.org/js/cookies.html感谢弗里多的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2019-06-12
    • 2015-09-12
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多