@EvgeniiR
https://github.com/EvgeniiR

Где правильнее записать, на какие вопросы уже ответил пользователь(сайт-викторина)?

Решил сделать сайт-викторину на космическую тематику к конкурсу в колледже.
Вся викторина будет на одной(главной) странице сайта. Вопросы обновляться через AJAX. Каждый следующий вопрос выбирается случайным образом из таблицы вопросов.
(В БД две таблицы - Вопросы(question_id,question_text) и Ответы(answer_id, question_id,answer_text,is_corrext))
Вопрос в следующем - где хранить question_id, выбранный пользователем для него answer_id, и, наверное, номер последнего вопроса? Это для того чтобы подсчитать результаты в конце, и не выдавать пользователю один и тот же вопрос два раза.
Стоит ли хранить эти данные в cookies, или же в Сессии? Нет ли там подводных камней в данном случае, рисков что данные спутаются/пропадут?
Проходить викторину можно будет без авторизации.
Хоть конкурс и проект не серьёзный, самому хочется сразу сделать всё правильно.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега Веб-разработка
{PHP, MySql, HTML, JS, CSS} developer
куки - доступное пользователю для редактирования хранилище. Хранить в нем какие-либо результаты плохая идея, я себе понапишу что все вопросы ответил верно и - профит, я - Илон Маск.
В идеале - завести таблицу в бд, куда вносится просто рандомное генерированное число/хеш, этот же хеш хранится в куке пользователя. При заходе проверяется кука - если уже заходил - вытащить все результаты, если что-то решил - записать в базу по ключу из куки.
Ответ написан
Ваш ответ на вопрос

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

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