Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: вопрос по чату с викториной
Форумы портала PHP.SU » » Вопросы новичков » вопрос по чату с викториной

Страниц (1): [1]
 

1. Bio man - 09 Ноября, 2011 - 18:29:26 - перейти к сообщению
сделал чат с викториной... проблема с викториной...
если сидеть в чате постоянно то все работает отлично, бот задает вопросы, дает подсказки, ищет правильные ответы... НО если не обновлять, например, 5 минут то потом подсказка вылетает каждую секунду (при каждом обновлении) до того момента, когда буквы в ответе закончатся и потом опять все нормально - задается новый вопрос итд если регулярно обновлять. вот список переменных отвечающих за время:

$next_q_time - время записи след. вопроса если ответили на текущий
$curr_q_time ($last_question['time']) - время задачи текущего вопроса
$tip_time - время последней подсказки. 1 подсказка каждые 30 сек если не было ответа.

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

вот кусок класса викторины

кусок класса викторины (Отобразить)
2. LIME - 09 Ноября, 2011 - 18:34:54 - перейти к сообщению
Bio man ajax используете?
3. Bio man - 09 Ноября, 2011 - 18:36:50 - перейти к сообщению
нет, чат для телефонов
4. LIME - 09 Ноября, 2011 - 18:43:46 - перейти к сообщению
писать в сессию идентификатор последней подсказки и выдавать следующую?
сорь лениво код читать сегодня ...он большой))
(Добавление)
время не учитывать
5. Bio man - 09 Ноября, 2011 - 18:52:24 - перейти к сообщению
код читать не обезательно, мне просто надо идея а то я сегодня уже не могу думать
LIME пишет:
писать в сессию идентификатор последней подсказки и выдавать следующую?
хм, для пользователя А может и поможет а если зайдет пользователь В? то получится такая же ситуация! все таймстемпы хранятся в БД, викторина доступна для всех, то есть на 1 вопрос могут отвечать много юзеров и тому кто первый ответит защитывается пункт
6. LIME - 09 Ноября, 2011 - 18:56:10 - перейти к сообщению
Bio man тогда надо хранить только одну последнюю подсказку
например флаг в базе на единственной подсказке
ее и выдавать
(Добавление)
при переходе на след подсказку любому юзеру флаги менять
менять подсказки проверкой времени последней + интервал при запросе
7. Bio man - 09 Ноября, 2011 - 19:43:51 - перейти к сообщению
долго думал и решил свою задачу! добавил к каждой комнате поле `last_visit` и сделал проверку
PHP:
скопировать код в буфер обмена
  1. if((time() - $last_visit) > 30) $tip_time = time();
Радость
код удаляю, чтоб не смеялись и тему можно закрывать Закатив глазки

 

Powered by ExBB FM 1.0 RC1