PHP и MySQL Обратный отсчет и обновление БД в каждую секунду и по истечении срока сохраняют результаты в БД - PullRequest
0 голосов
/ 04 мая 2011

У меня есть обратный отсчет. На моем образовательном веб-сайте у пользователя есть два часа на создание лаборатории.

  1. Я хочу отображать PHP динамически, например, (02:00:00)через 1 секунду (01:59:59) и т. д.Я нашел только JQuery Countdown (с действием истечения времени), но он не соответствует пункту 2.

  2. Каждую секунду мне приходится обновлять таблицу (например, поле time_remaining) значением обратного отсчета,Почему это ?Существуют ситуации, когда пользователь / ученик решает некоторые уравнения, и соединение с Интернетом разрывается или компьютер неожиданно выключается, поэтому ученик может перезагрузить страницу, но с обратного отсчета последнего состояния.Или студент может сделать паузу и воспроизвести лабораторию, когда захочет.

  3. После истечения времени я хочу сохранить результаты в базе данных (я думаю, здесь все просто)

Можете ли вы помочь мне с первыми 2 очками?Спасибо за помощь.

1 Ответ

0 голосов
/ 04 мая 2011

Зачем вам обновлять time_remaining, если у вас может быть что-то вроде time_start и time_expiry?

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

Имейте в виду, что для удобства пользователей часы обратного отсчета не должны быть такими, на которые опирается ваше приложение.

Что касается сохранения данных в базе данных - поскольку вы используете форму, вы можете просто вызвать событие отправки, когда обратный отсчет достигнет нуля. Код тривиален:

$("#yourSubmitForm").trigger('submit');

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

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