» Hardware » Software » Windows » Internet » Humor » Other

Система голосования на PHP

Argon On-Line » Internet » Webmastering
 

Дело было вечером, делать было нечего… Pink Floyd пел, Argon скучал, тут как «Echoes» зазвучал… И, зачарованный этой композицией, решил я написать свою систему голосования (или опрос, кому как нравится) на PHP. Сказано — сделано, скрипты готовы и я рад ими с вами поделиться. Сначала хотел назвать эту статью «Создаем систему голосования на PHP», но тогда бы пришлось детально объяснять алгоритмы работы моих скриптов. А мне сейчас не до этого, поэтому я просто приведу исходный код системы и объясню, как с ней работать.

Возможности системы голосования

  • Поддержка нескольких голосований и их параллельная обработка.
  • Возможность создания нового голосования через веб-интерфейс.
  • Автоматическое генерирование HTML-формы голосования.
  • Вывод результатов: в порядке ввода, по убыванию, по возрастанию.
  • Настраиваемый вывод результатов голосования.
  • Защита от «накрутки».
  • Мало чем ограниченный потенциал к далнейшему наращиванию функциональности.
Примерно так можно настроить дизайн вывода результатов
КомпозицияШкалаГолоса%
Echoes
7051.47%
Comfortably Numb
2518.38%
Shine On You…
2014.71%
Time
906.62%
Us And Them
604.41%
One Of These Days
604.41%
Всего голосов
136100%

Установка системы голосования

  • Для работы системы голосования требуется сервер, поддерживающий PHP версии 4.2 и старше.
  • Создайте на сервере отдельный каталог для системы (например, /voting/) и назначьте ему права на запись, проставив атрибуты 777.
  • Скопируйте в этот каталог 4 php-файла, составляющие систему голосования:
    • new.php — скрипт создания нового голосования
    • form.php — скрипт генерации формы голосования
    • write.php — скрипт обработки поступающих «голосов»
    • echo.php — скрипт вывода результатов голосования
  • Рекомендую сменить пароль для создания новых голосований, отредактировав значение переменной $password в файле new.php.

Создание нового голосования

  • Откройте в браузере свежезакачанный файл new.php, перед вами предстанет страница создания нового голосования.
  • Введите свой пароль в поле «Pass».
  • Введите имя будущего голосования в поле «Name». Имя голосования — это идентификатор, используя который вы сможете просмотреть результаты голосования, отдать голос или сгенерировать форму голосования. Во избежание каких-либо проблем, вводите имя, используя только маленькие латинские буквы и цифры.
  • Начиная с поля «String0», введите варианты ответов голосования. Каждое поле — вариант ответа, который будет отображаться в форме голосования и на странице вывода результатов. Пустые поля не обрабатываются, восьми вариантов должно хватить.
  • В разделе «Type» выберите тип формы голосования:
    • «Checkboxes» — возможен выбор нескольких вариантов ответа (чекбоксы)
    • «Radiobuttons» — возможен выбор только одного варианта ответа (радиокнопки)
  • Для подтверждения введенных данных и создания нового голосования нажмите кнопку «Send».
  • Если все прошло гладко и база данных голосования (имя_голосования.txt) успешно создана, вам вернется страница формой голосования. Если же не так гладко, то проверьте свои шаги, начиная с установки.
  • Откройте исходный код сгенерированной страницы и скопируйте HTML-код формы голосования, предназначенный для вставки на страницы сайта (естественно, настройте дизайн).
  • На этой же странице вам необходимо «отдать первый голос», чтобы сдвинуть с нуля общее количество голосов (при нулевом значении будут ошибки в арифметике, вроде деления на ноль).
  • Новое голосование готово к «использованию»!

«Использование» системы голосования

  • Результаты голосования можно:
    • получить при обращении к скрипту как echo.php?name=test, где test — имя голосования
    • вставлять на любую страницу сйта с помощью технологии Server-Side Includes (SSI)
    • вставлять в PHP-документы с помощью команды $name='test';include('echo.php');, где test — имя голосования
  • Голосовать можно:
    • используя форму голосования, которую предлагалось создать в разделе «Создание нового голосования»
    • из скрипта генерации формы голосования, при обращении к нему как form.php?name=test&type=1 (параметр type определяет тип формы: 1 — чекбоксы, 2 — радиокнопки)
  • Время действия защиты от «накрутки» определяется в переменной $days файла write.php (в днях).
  • В файле echo.php можно поменять формат вывода результатов голосования (см. исходный код).
  • Исходный код всех файлов системы голосования можно получить здесь.
  • Проверить в действии тестовую систему голосования:
  • Используя алгоритмы этой универсальной системы (я привел лишь элементарные скрипты), можно организовать систему голосования более сложную и надежную.
  • Так что не стесняйтесь, модифицируйте систему под собственные нужды, это довольно просто даже при знаниях PHP на начальном уровне.

Уфф… Статья (если можно так назвать) и система голосования написаны менее чем за пол дня, с перерывами на сон, еду, слушанье музыки и другие виды деятельности. Так что хоть я и гонял эти скрипты в хвост и в гриву в поисках багов (Word предлагает «багор»), необнаруженные ошибки не исключены.

Поэтому, при обнаружении оных, радируйте!

 
Еще
Оглавление раздела
Содержание / Новости

Карта сайта
О сайте
Ссылки

Форум
Обратная связь
Если ты нашел ошибку, хочешь что-то посоветовать либо поругать меня, не посчитай за труд написать об этом в следующем поле...







К началу страницы© 2002—2008 Argon