В моем prestashop пользователь (который не является клиентом или администратором) может создать «побочную» учетную запись (это не учетная запись prestashop), чтобы сделать что-то особенное на сайте.
Я создал все, чтобы сделать это, но когда пользователь подключается, я не могу сохранить данные во время сеанса.
Я ищу способ сохранить данные, и единственное, что я вижу, это умные куки. Хорошо, но я не могу контролировать время жизни этого печенья. И мне нужен этот 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->setExpire(0);
NB. Cookie умирает только тогда, когда браузер полностью закрыт (у меня есть фидлинг, который позволяет браузеру открываться, поэтому я обнаружил ошибку)
И последнее, если вы хотите убить печенье самостоятельно
$cookie = new Cookie('my_cookie');
$cookie->variable_name = null;
$cookie->write();
Пробовал с Prestashop 1.6.1.x
Исходное сообщение с небольшими исправлениями
http://vblanch.com/get-the-contact-email-in-prestashop-shop-name-and-set-values-in-cookies/
Если вам также необходимо поместить значения в куки:
$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;
Вы можете использовать SESSION в Prestashop только с этими параметрами $_SESSION['VIEW']
Другие сессии должны быть уничтожены