我需要使用perl设计购物车,以便用户清楚地了解他选择购买的商品。我想过将这些项目的数据保存在cookie中。但我想知道如何在每次添加项目时更新已存在的cookie。有没有更好的方法来设计购物车/结账页面。有没有perl模块让我的工作更轻松?
以下是我尝试更新购物车cookie的代码段
$cooki = $q->cookie('CART'); #retrieve cookie CART if already exists into var $cooki
$val2 = $cooki;
$val1 = $picid;
$cooki=$q->cookie(-name=>'CART',
-value =>["$val1"," $val2"],
-expires=>'+5m',
-path=>'/');
print $q->header(-cookie=>$cooki);
检索:
$cooki = $q->cookie('CART');
但它只存储所选照片的当前ID,例如ex' 45%20'即45具有空格而不是多个值,如' 45 12 16' 。我哪里可能出错?
答案 0 :(得分:1)
请勿使用Cookie,而是使用CGI::Session
。由于所有原因,您可以阅读CGI::Session::Tutorial
。
我在这个问题中创建了一个使用会话将信息从一种形式传递到另一种形式的工作示例:How to access variable of other perl program in my perl program
答案 1 :(得分:0)
试试这个,因为返回是一个数组:
@cooki = $q->cookie('CART');
答案 2 :(得分:0)
使用CGI::Cookie并在匿名数组中设置Cookie
my $c = CGI::Cookie->new(-name => 'CART',
-value => ['45','12','16'],
然后通过以下方式获取现有Cookie:
%cookies = CGI::Cookie->fetch;
$cart = $cookies{'CART'}->value;