Prestashop 1.6 session / cookie with smarty

时间:2014-11-10 09:58:21

标签: php session cookies smarty prestashop

在我的prestashop中,用户(不是客户或管理员)可以创建一个“边”帐户(不是prestashop帐户)来在网站上做一些特别的事情。

我创建了所有要做的事情,但是当用户连接时,我无法在会话期间保留数据。

我一直在寻找一种保存数据的方法,我唯一看到的就是聪明的cookie。很好,但我无法控制该cookie的生命周期。当用户关闭浏览器时,我需要这个cookie消失。

所以我试图做一个会话,但我无法让它工作,我没有看到一种方法来做一个不会持续的cookie。

任何人都有想法进行数据会话或处理cookie生命周期吗?

谢谢

4 个答案:

答案 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 其他会议已被破坏