Викторина для чата VOC++ обновление версии PHP
Обновлена викторина от Чат мастера, до актуальной версии PHP. Подробности в полной новости.
Что исправлено -
- Запускается на актуальной версии PHP.
- Переделано для запуска с short_open_tag = Off в php.ini
- Исправлено подключение и работа с базами данных
- Переделано для работы в utf-8 кодировке.
Что умеет -
Далее собственно описание самого чатмастера.
Технические требования:
1. Наличие базы данных MySQL и возможности создать там одну таблицу (для вопросов).
2. Наличие шелла и возможности запускать оттуда РНР-скрипты в фоновом режиме (background)
3. Отсутствие принудительного завершения РНР-скриптов по таймауту (некоторые хостинги грешат этим).
4. желателен доступ к кронтабу.
Возможности:
1. Самая главная возможность: бот задаёт вопросы и принимает от пользователя ответы.
2. Чтобы пользователям было легче отвечать, бот даёт две подсказки: сначала первая буква, потом первые три буквы слова.
3. Настройка времени между подсказками, между вопросами и т.д.
4. Администрирование вопросов (добавление, вывод в админке, удаление. Редактирование делать не стал, т.к. бессмысленно.)
5. Подсчёт количества верных ответов для каждого пользователя
6. Для VOC++: возможность начисления пойнтов за правильный ответ (настраиваемо)
7. Выбор комнаты, в которой проводится викторина.
Для запуска -
/path/to/php -q engine.php &
процесс должен уйти в бэкграунд. тогда набрать logout и закрыть шелл
если не удаётся отправить процесс в бэкграунд, можно повесить запуск процесса в кронтаб (то же самое можно
сделать если процесс будет периодически падать):
1. rm -f /path/to/data/quiz/quiz.pid - останавливаем старый процесс. На всякий случай
2. через пару минут запускаем новый процесс: /path/to/php -q /path/to/data/quiz/engine.php
NB!!! /path/to/php замените на свой путь до исполняемого файла php
очень часто вместо полного пути можно указать просто слово php
И не надо спрашивать меня какой у ВАС путь до php, я его не могу знать.
Чтобы узнать путь до php наберите в шелле команду
whereis php
Чтобы перемешать вопросы после заполнения базы данных, запустите скрипт data/quiz/randomizer.php
Поскольку сам Chatmaster выкладывал скрипт в свободный доступ, то выкладываю обновленный скрипт здесь.
Изменения не в скрипт, не в копирайт не вносились. Внесены лишь только изменения, для работы на последних версиях PHP.