Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Кто знает где хранятся товары в wishlist и в корзине? если в сессиях, то как установить время хранения товаров в wishlist 1 месяц, а в корзине 3 дня? и как посмотреть записанные значения в сессии?

Помогите пожалуйста.

Надіслати
Поділитися на інших сайтах

При использовании сессий в PHP по умолчанию идентификатор сесии сохраняется в "куках" или "кукисах" - небольших блоков информации, которые хранятся на стороне клиента и имеет заданное время жизни. (в PHP куки доступны при помощи глобального массива $_COOKIES). Название идентификатора сессии - "PHPSESSID", но его можно изменить при помощи параметра session.name в файле php.ini.

 
Время жизни куки, которая хранит идентификатор сесии по умолчанию составляет 0 сек, т.е.сука кука хранится до того момента, как браузер будет закрыт. Это можно изменить при помощи параметра session.cookie_lifetime в файле php.ini.
 
PHP, как правило, хранит данные сессии в файлах. Для того, чтобы не засорять файловую систему периодически осуществляется очистка устаревших данных, garbage collection - уборка мусора. В файле php.ini существует параметр session.gc_maxlifetime который указывает время в секундах, по истечению которого все устаревшие данные будут удалены из файловой системы.
 
Допустим, мы хотим задать время жизни сесии - 3 часа. Для этого в файле php.ini устанавливаем следующие параметры:
session.gc_maxlifetime = 10800

session.cookie_lifetime = 10800

Если у вас нет возможности внести изменения в файл php.ini, то можно сделать установку этих параметров при помощи файла .htaccess. Для этого вносим в него следующие строки:
php_value session.gc_maxlifetime 10800

php_value session.cookie_lifetime 10800

Если ваш хостер запрещает вам использовать директиву php_value в файле .htaccess или использовать .htaccess в целом - то пора менять хостера.
 
Кроме того, вы можете установить время жизни сессионной куки из PHP при помощи функции session_set_cookie_params. К примеру:
<?php

session_set_cookie_params(10800);

?>

При этом нужно учитывать, что функциция set_cookie_params должна быть вызвана до того, как сессия будет открыта при помощи session_start. Функция set_cookie_params также позволяет установить путь, домен, настройки безопасности для сессионной куки.
 

 

 

Это матчасть.

 

По поводу второго вопроса, как задать время жизни тем или иным параметрам. Все просто но замороченно. Добавляете сеттерам ключ time-stamp по событию и сохраняете его вместе с данными о товарах в ту же сессию. Ну и геттерам соответственно проверку по времени. А где вы этот ключи будете хранить, в базе или в сессии - все равно.

Надіслати
Поділитися на інших сайтах

Это матчасть.

 

По поводу второго вопроса, как задать время жизни тем или иным параметрам. Все просто но замороченно. Добавляете сеттерам ключ time-stamp по событию и сохраняете его вместе с данными о товарах в ту же сессию. Ну и геттерам соответственно проверку по времени. А где вы этот ключи будете хранить, в базе или в сессии - все равно.

 

Все что выше мне понятно, а вот про time-stamp не совсем...

Ну вот пишем мы в $this->session->data['wishlist'] массив с product_id - куда нужно дописать, что data['wishlist'] - будет храниться 84600 сек (24 часа)

И аналогично для корзины, только корзину хранить например 172800 сек (48 часов)

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.