0

有什么方法可以存储在 cookie 中提交的数据,并且当再次加载相同的表单时,文本字段会填充 cookie 中存储的值?

我有一个购物网站,我不想要求客户注册,所以当他们订购一件商品并再次回来订购另一件商品时,表格会预先填写他们的信息。

我环顾四周,但似乎没有人提到这种事情。

4

4 回答 4

2

是的,您可以在客户端的浏览器端存储 cookie 供以后使用。此类 cookie 称为“持久性 cookie”。它们会一直存储到客户清除其浏览数据为止。

要了解有关它们的更多信息,请参阅:

http://www.webopedia.com/TERM/P/persistent_cookie.html

如何创建持久性与非持久性 cookie?

http://en.wikipedia.org/wiki/HTTP_cookie

您是否尝试过将 cookie 过期时间设置为足够长的时间?例如像这样的一年?:

setcookie( "myCookie", $myValue, strtotime( '+1 year' ) );
于 2013-05-20T14:04:20.210 回答
1

这是一种非常过时的方式来完成你需要的事情,它容易出现错误和隐私问题。任何可以共享的计算机上的可怕想法。

如果你想做类似的事情,那么创建一个带有会话 ID 的持久 cookie。然后使用该会话 ID 识别您的客户,并使用该会话 ID 作为参考从数据库中存储/读取所有数据。

此外,让您的客户清楚地知道您正在使用持久性 cookie 来记住他的数据,并给他一个带有“不记得我的数据”选项的按钮。

于 2013-05-20T14:25:06.180 回答
1

您可以$_COOKIE[]用来访问和检索存储在 cookie 中的信息。

于 2013-05-20T14:02:14.417 回答
0

在表单上添加onsubmit事件侦听器。使用您喜欢的任何方式阅读表格中的字段。现在,只要提交表单,您就可以执行以下操作:(只是一个示例,使用jQuery-cookie

$('#yourFormId .fieldClass').each(function() {
    // a cookie that expires in 30 days.
    $.cookie('somePrefix' + $(this).attr('id'), $(this).val(), {expires: 30});
});

接下来,页面加载:

$(function() {
     $('#yourFormId .fieldClass').each(function() {
         var value = $.cookie('somePrefix' + $(this).attr('id'));
         $(this).val(value);
     });
});

更好的是,无论您使用哪种服务器端语言,都将允许您在下一个页面加载时访问 cookie 值。因此,您可以使用 cookie 直接填写表单字段。例如:如果您使用的是 PHP,您可以执行以下操作:

<input id="someId" value="<%php echo $_COOKIE['somePrefixsomeId']; %>" />

尽管以这种方式存储用户名或电子邮件可能没问题,但请不要在 cookie 中存储任何身份验证信息(例如密码)或任何其他敏感信息(例如信用卡号)。

于 2013-05-20T14:16:19.947 回答