在我的prestashop中,用户(不是客户或管理员)可以创建一个“边”帐户(不是prestashop帐户)来在网站上做一些特别的事情。
我创建了所有要做的事情,但是当用户连接时,我无法在会话期间保留数据。
我一直在寻找一种保存数据的方法,我唯一看到的就是聪明的cookie。很好,但我无法控制该cookie的生命周期。当用户关闭浏览器时,我需要这个cookie消失。
所以我试图做一个会话,但我无法让它工作,我没有看到一种方法来做一个不会持续的cookie。
任何人都有想法进行数据会话或处理cookie生命周期吗?
谢谢
答案 0 :(得分:7)
您可以使用CookieCore
类
//to write
$cookie = new Cookie('my_cookie'); //make your own cookie
$cookie->setExpire(time() + 20 * 60); // 20 minutes for example
$cookie->variable_name = 'hello';
$cookie->write();
//to read
$cookie = new Cookie('my_cookie');
echo $cookie->variable_name;
//hello
答案 1 :(得分:3)
我要添加UnLoCo的消息。
对于寻找会话结束时死亡的cookie的人,只需输入
即可$cookie->setExpire(0);
注意,只有当浏览器完全关闭时,cookie才会死掉(我有一个允许浏览器打开的扩展,所以我有一个错误)
最后一件事,如果你想自己杀死cookie
$cookie = new Cookie('my_cookie');
$cookie->variable_name = null;
$cookie->write();
答案 2 :(得分:0)
尝试使用Prestashop 1.6.1.x
原帖,几乎没有更正 http://vblanch.com/get-the-contact-email-in-prestashop-shop-name-and-set-values-in-cookies/
如果您还需要将值放入cookie:
$this->context->cookie->__set('name_of_your_key', $your_value);
从smarty模板(.tpl)获取值:
{$cookie->name_of_your_key}
从PHP(在控制器内):
$this->context->cookie->name_of_your_key
在控制器之外:
$context = Context::getContext();
$context->cookie->name_of_your_key;
答案 3 :(得分:0)
您只能使用此参数$_SESSION['VIEW']
在Prestashop中使用SESSION
其他会议已被破坏