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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вопрос по чату с викториной

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Bio man
Отправлено: 09 Ноября, 2011 - 18:29:26
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




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

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

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

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

кусок класса викторины (Отобразить)

(Отредактировано автором: 09 Ноября, 2011 - 19:44:27)

 
 Top
LIME
Отправлено: 09 Ноября, 2011 - 18:34:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Bio man ajax используете?
 
 Top
Bio man
Отправлено: 09 Ноября, 2011 - 18:36:50
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




нет, чат для телефонов
 
 Top
LIME
Отправлено: 09 Ноября, 2011 - 18:43:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




писать в сессию идентификатор последней подсказки и выдавать следующую?
сорь лениво код читать сегодня ...он большой))
(Добавление)
время не учитывать
 
 Top
Bio man
Отправлено: 09 Ноября, 2011 - 18:52:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




код читать не обезательно, мне просто надо идея а то я сегодня уже не могу думать
LIME пишет:
писать в сессию идентификатор последней подсказки и выдавать следующую?
хм, для пользователя А может и поможет а если зайдет пользователь В? то получится такая же ситуация! все таймстемпы хранятся в БД, викторина доступна для всех, то есть на 1 вопрос могут отвечать много юзеров и тому кто первый ответит защитывается пункт
 
 Top
LIME
Отправлено: 09 Ноября, 2011 - 18:56:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Bio man тогда надо хранить только одну последнюю подсказку
например флаг в базе на единственной подсказке
ее и выдавать
(Добавление)
при переходе на след подсказку любому юзеру флаги менять
менять подсказки проверкой времени последней + интервал при запросе
 
 Top
Bio man
Отправлено: 09 Ноября, 2011 - 19:43:51
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




долго думал и решил свою задачу! добавил к каждой комнате поле `last_visit` и сделал проверку
PHP:
скопировать код в буфер обмена
  1. if((time() - $last_visit) > 30) $tip_time = time();
Радость
код удаляю, чтоб не смеялись и тему можно закрывать Закатив глазки
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB