Хранение пользовательского прогресса в сессиях php - PullRequest
1 голос
/ 08 февраля 2012

Я создаю веб-сайт, содержащий викторину с различными уровнями, на которой я хочу сохранять прогресс пользователя, когда он / она выходит из системы. Он должен иметь возможность продолжить с того уровня, на котором он вышел из системы. Как я могу использовать базу данных? сохранить текущий уровень пользователя при выходе из системы и получить уровень при входе в систему?

, пожалуйста, предложите некоторую онлайн-помощь или учебники, чтобы сделать это. спасибо

Ответы [ 4 ]

2 голосов
/ 08 февраля 2012

Файлы cookie - плохая идея (если он / она проводит тестирование в школе / на работе и возвращается домой, файлы cookie больше не актуальны).

Идентификатор сеанса хранится в файлах cookie (в большинстве случаев) и сеансепеременные должны быть уникальными для каждого соединения, поэтому опять-таки не очень хороший вариант.

Конечно, cookie и идентификатор сессии можно стирать вручную (чтобы скрыть попытки с плохими результатами или уничтожение прогресса одноклассников).

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

Вот статья о внешних ключах, один в документации MySQL кажется немного сложнее читать, но вы должны научиться читать их.

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

0 голосов
/ 08 февраля 2012

Файлы cookie полезны при хранении данных во время (одного) сеанса, но, насколько я понимаю, вы хотите иметь возможность восстановить предыдущий прогресс из старого сеанса в новом сеансе. Поэтому вам нужно будет хранить прогресс в другом месте, например, в базе данных.

Если данные сеанса должны сохраняться только при явном выходе пользователя из системы, вы можете сохранить данные сеанса при вызове метода logout () и затем загрузить их в login (). Но это означает, что, например, по истечении времени сеанса данные из текущего сеанса могут быть потеряны (!) и, следовательно, вероятно, нежелательны.

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

0 голосов
/ 08 февраля 2012

Если вам нужна постоянная история результатов опроса для пользователя, вам нужна база данных. Куки-файлы хороши для хранения прогресса в конкретной викторине, но не являются надежным способом хранения истории пользователя. Кроме того, с помощью файлов cookie пользователь не сможет запустить тест на одном устройстве, а затем продолжить на другом устройстве. Для сеансов базы данных отслеживания прогресса на нескольких устройствах будет лучше.

0 голосов
/ 08 февраля 2012

Да, они хороши, но храните только коды уровней, а не цифры.

Некоторые учебные пособия: tizag.com , w3schools , Документация PHP.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...