Теряются данные из сессии.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
wolfandman
Сообщения: 40
Зарегистрирован: 2012.06.04, 19:52

Теряются данные из сессии.

Сообщение wolfandman »

На сайте есть очень большой развлекательный тест из множества вопросов.
Люди проходят его по несколько часов или даже дней. Бывает, что человек разлогинивается, меняет устройство и прогресс, который ведется в сессии, теряется. Видимо, сессия на основе куков, не очень походит. Естественно, на ум приходит решение в виде базы данных на основе SQL, но я бы хотел рассмотреть другие варианты. Есть ли способ связать сессию с учёткой?
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Теряются данные из сессии.

Сообщение skynin »

-- Есть ли способ связать сессию с учёткой?
Есть - хранить ID сессии в записи пользователя, а саму инфу о сессии - в отдельном хранилище.

то есть:
-- на ум приходит решение в виде базы данных на основе SQL

Потому что сессия - это
Сессия (session) – это некоторый отрезок во времени, в пределах которого веб-приложение может определять все запросы от одного клиента.

А у вас уже НЕ сессия. У вас пользователь работает с некой штукой под названием "очень большой развлекательный тест" и вам нужно эту штуку сохранять продолжительное время. Думаю даже когда пользователь закончит с ней работу.
Примерно так же как счет на покупку - пользователь может его начать формировать с смарта, а потом придя домой посоветовавшись с супругом/ой - продолжить и купить. И счет этот - "навсегда" остается в данных пользователя.

То есть по самой задаче - вам сессия не подходит независимо от способа ее реализации.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Ответить