有没有办法存储在cookie中提交的数据,当再次加载相同的表单时,文本字段会用cookie中的存储值填充?
我有一个购物网站,我不想要求顾客注册,所以当他们订购商品并再次回来订购另一件商品时,表格会预先填写他们的信息。
我环顾四周,但似乎没有人提到这样的事情。
答案 0 :(得分:2)
是的,您可以存储Cookie以供以后在客户端的浏览器端使用。这种cookie称为“持久性cookie”。存储它们直到客户端清除其浏览数据。
要了解有关它们的更多信息,请参阅:
http://www.webopedia.com/TERM/P/persistent_cookie.html
您是否尝试过将Cookie到期时间设置为足够长的时间?例如这样的一年?:
setcookie( "myCookie", $myValue, strtotime( '+1 year' ) );
答案 1 :(得分:1)
您可以使用$_COOKIE[]
来访问和检索存储在Cookie中的信息。
答案 2 :(得分:1)
这是完成所需内容的一种非常过时的方式,它容易出错和隐私问题。任何可以共享的计算机都有可怕的想法。
如果你想做类似的事情,那么用会话ID创建一个持久性cookie。然后使用该会话ID识别您的客户,并使用该会话ID作为参考来存储/读取数据库中的所有数据。
此外,让您的客户清楚知道您使用持久性cookie来记住他的数据,并给他一个“不记得我的数据”选项的按钮。
答案 3 :(得分: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中(例如密码)或任何其他敏感信息(例如信用卡号)。