Голосование на PHP MostInfo.net (http://mostinfo.net/article/3/41.htm)
К нам на передачу часто поступают вопросы как сделать разного вида скрипты...
KLEVO imania.zp.ua 26-05-2008
К нам на передачу часто поступают вопросы как сделать разного вида скрипты. Но я вообще программист, а не дизайнер - поэтому извиняйте за кривоту кода.
Начнём с того зачем нам голосование ? Как вы видели на сайте http://www.imania.zp.ua/ его используют чтоб узнать мнение пользователей . Голосование это один из лучших методов привлечение посетителей на сайт.
Начнём. Для написания скрипта вам понадобится драйвер DLL_прямые_пальцы.
Вот что нам нужно будет вставить в HTML код, чтоб получить формочку.
Надеюсь, все поняли смысл этого кода … Я хочу объяснить только эту строку “” Эта строка передаёт скрипту № голосования. Т.е. вы сразу можете проводить большое количество голосований.
Далее нам нужно будет в чём-то хранить статистику. Для этого нам понадобится обычный файл. Имя файла будет зависеть от № голосования. Пример vote1.txt – для первого и т.д. Обязательно если скрипт будет работать на *NIX платформе выставить права доступа как 777 (Read/Write/eXecute) Файл состоит из четырёх строк которые заполнены по 1 нулю.
Я вообще ленивый человек , но не люблю оставлять дырки.
В данном голосование 1 человек может проголосовать хоть 100 раз , но мы это сейчас исправим.
Проверять по IP человека можно , но 1 сейчас есть много прокси серверов и можно просто перезвонить к провайдеру и ты получишь новый IP. Но у меня идея покруче … Cookies. Но они работают не во всех браузерах. Мысль состоит в том чтоб обрабатывать голосовал ли уже человек … Допустим можно голосовать 1 раз в день . Значит перед echo " Спасибо, Ваше мнение учтено:"; Мы должны написать setcookie("voted","yes",time() + 86400); Если вам интересно что такое 86400 то это 1 день 1 день=24часа=24*60 минут=24*60*60 секунд или 86400 секунд. Это значит что юзер целый день не сможет голосовать.
Далее заменяем
if ($answer != "")
На
if (($answer != "") && ($voted !="yes")){
И заменяем
} else { echo " Результаты голосования"; }
На
} else { if ($voted =="yes") { echo "Вы уже голосовали !"; } echo " Результаты голосования"; }
Вуаля ! Скрипт ГОТОВ !!! Теперь голосуйте сколько хотите !