Php 带smarty的Prestashop 1.6会话/cookie
在我的prestashop中,用户(不是客户或管理员)可以创建一个“side”帐户(不是prestashop帐户),在站点上执行一些特殊的操作 我已经创建了一切可以做到这一点,但当用户连接时,我无法在会话期间保留数据 我一直在寻找一种保存数据的方法,我唯一看到的就是smarty cookie。我很好,但我无法控制饼干的寿命。当用户关闭浏览器时,我需要这个cookie消失 所以我试着做了一个训练,但我无法让它工作,我也没有找到一种方法来做一个不能持久的曲奇 有没有人想到像数据一样进行会话,或者处理cookie的生命周期Php 带smarty的Prestashop 1.6会话/cookie,php,session,cookies,smarty,prestashop,Php,Session,Cookies,Smarty,Prestashop,在我的prestashop中,用户(不是客户或管理员)可以创建一个“side”帐户(不是prestashop帐户),在站点上执行一些特殊的操作 我已经创建了一切可以做到这一点,但当用户连接时,我无法在会话期间保留数据 我一直在寻找一种保存数据的方法,我唯一看到的就是smarty cookie。我很好,但我无法控制饼干的寿命。当用户关闭浏览器时,我需要这个cookie消失 所以我试着做了一个训练,但我无法让它工作,我也没有找到一种方法来做一个不能持久的曲奇 有没有人想到像数据一样进行会话,或者处理
谢谢您可以使用
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
我要在UnLoCo的信息中添加内容 对于正在寻找在课程结束时死亡的cookie的人,只需将
$cookie->setExpire(0);
注意,只有当浏览器完全关闭时,cookie才会消失(我有一个扩展feedly,它允许浏览器打开,所以我认为有一个bug)
最后一件事,如果你想自己杀死饼干
$cookie = new Cookie('my_cookie');
$cookie->variable_name = null;
$cookie->write();
试用Prestashop 1.6.1.x 原稿,修改很少 如果您还需要将值放入cookie中:
$this->context->cookie->__set('name_of_your_key', $your_value);
要从smarty模板(.tpl)获取值,请执行以下操作:
从PHP(控制器内部):
控制器外部:
$this->context->cookie->name_of_your_key
$context = Context::getContext();
$context->cookie->name_of_your_key;
您只能将Prestashop中的会话与此参数一起使用
$\u SESSION['VIEW']
其他会话已被销毁要删除所有cookie数据,您可以使用
$cookie->logout()代码>在写入()之前
$context = Context::getContext();
$context->cookie->name_of_your_key;