Задать вопрос
@hunter_outlaw

Как хранить массив пользовательских данных? Сессии или куки?

Здравствуйте
Стоит задача, хранить массив из 15 публикаций/товаров, которые просмотрел пользователь. Изначально решил реализовать сохранение массива в сессиях.
$_SESSION['lastview']['adsf'][$post['id']]['post_id'] = stripslashes($post['id']);
$_SESSION['lastview']['adsf'][$post['id']]['title'] = stripslashes($post['title']);
$_SESSION['lastview']['adsf'][$post['id']]['posters'] = $post['posters'];
$_SESSION['lastview']['adsf'][$post['id']]['price'] = stripslashes($post['price']);
$_SESSION['lastview']['adsf'][$post['id']]['currency'] = stripslashes($post['currency']);
$_SESSION['lastview']['adsf'][$post['id']]['url'] = $post_url;


Но так как опыта работы с сессиями у меня не много, я не уверен, правильно ли я делаю. Можно ли хранить такие данные в сессиях. Кроме того, после закрытия браузера, сессии очищаются, а мне необходимо сохранить эти данные как можно дольше (например, до логаута)

Как лучше хранить такие данные, что бы избежать использования БД?
Заранее благодарю!
  • Вопрос задан
  • 844 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Если задача стоит избежать хранения в базе - то вариант с хранением в куках исключает целостность, на разных устройствах залогиненый пользователь будет видеть разные данные. При хранении в сессии - при логауте/логине с др. устройства все данные уходят в горы, соответственно этот вариант тоже не верный, ибо я дома не увижу того же что с работы.
Я бы писал в базу, как на алиекспрессе и ибэе, и для статистики полезно, и для подсказок типа "люди которые смотрели этот товар так же смотрели..." на крайняк - ченть кейвалуйное, редис например с бессрочным полем, но после ребута полюбому данные уйдут. Запись и вытаскивание 15 строк из бд - миллисекунды, а профит в будущем нехилый.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Можно в localstorage. Будет храниться у пользователя.
Ответ написан
Комментировать
@hunter_outlaw Автор вопроса
Спасибо всем за помощь. Пожалуй сделаю следующим образом:
Для не авторизованных пользователей буду использовать куки, а для авторизованных БД + при необходимости локальное хранение первых N записей, что бы постоянно не дергать базу
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы