ПРОГРАММ: 654 | СТАТЕЙ: 125 | КОДОВ: 3434   

    главная        новости        программы        библиотека        коды        рейтинг       форум   

Афоризм
Истинный патриот за отечество и родины не пожалеет!
 
Поиск


 
Рассылка
| Soft-Ежедневник - обзор программ прямо к Вам на e-mail
 
 
Полезное!
 
7 лучших
  Сайт русского поэта Н.А. Заболоцкого.
  Безупречный ресурс производства термоэлектрических модулей и другого недорого
  Нужный портал одежды с эксклюзивным принтом
  Замена дисплея на айфон 6 на интернет-ресурсе iphone-center.msk.ru
  Заработок от 55 000 рублей за 5 минут
  
  
 
  Библиотека > web - разработка > PHPдобавить статью
Голосование на PHP

К нам на передачу часто поступают вопросы как сделать разного вида скрипты...
 
KLEVO
imania.zp.ua
26-05-2008
Версия для печати
печать

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

Начнём с того зачем нам голосование ?
Как вы видели на сайте http://www.imania.zp.ua/ его используют чтоб узнать мнение пользователей . Голосование это один из лучших методов привлечение посетителей на сайт.

Начнём.
Для написания скрипта вам понадобится драйвер DLL_прямые_пальцы.

Вот что нам нужно будет вставить в HTML код, чтоб получить формочку.

<FORM METHOD="POST" action="vote.php">
<TABLE BORDER=1><TR><TD><TABLE BORDER=0>
<TR><TD>Вопрос голосования</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=0>Ответ №1</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=1> Ответ №2</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=2> Ответ №3</TD></TR>
<TR><TD><INPUT TYPE=radio NAME=answer VALUE=3> Ответ №4</TD></TR>
<INPUT TYPE="hidden" NAME=von VALUE="1"
<INPUT TYPE="hidden" NAME=a1 VALUE="Ответ №1"
<INPUT TYPE="hidden" NAME=a2 VALUE="Ответ №2"
<INPUT TYPE="hidden" NAME=a3 VALUE="Ответ №3"
<INPUT TYPE="hidden" NAME=a4 VALUE="Ответ №4"
<TR><TD>
<INPUT TYPE=Submit NAME=vote VALUE=" Отправить ">
</TD></TR>
<TR><TD>
<INPUT TYPE=Submit NAME=result VALUE=" смотреть результат ">
</TD></TR></TABLE></TD></TR></TABLE></FORM>


Надеюсь, все поняли смысл этого кода …
Я хочу объяснить только эту строку “
Эта строка передаёт скрипту № голосования. Т.е. вы сразу можете проводить большое количество голосований.

Далее нам нужно будет в чём-то хранить статистику.
Для этого нам понадобится обычный файл.
Имя файла будет зависеть от № голосования.
Пример vote1.txt – для первого и т.д.
Обязательно если скрипт будет работать на *NIX платформе выставить права доступа
как 777 (Read/Write/eXecute)
Файл состоит из четырёх строк которые заполнены по 1 нулю.

Пример :
0
0
0
0

Теперь сам скрипт.

Vote.php
$file = "vote".$von.".txt";
$a = file($file);
$i = 0;
$fi = Count($a)-1;
$n = 0;
while ($i <= $fi):
$a[$i] = trim(str_replace (" ","", $a[$i]));
$n = $n+$a[$i];
$i++;
endwhile;

if ($answer != "") {
echo "
Спасибо, Ваше мнение учтено:";
$a[$answer]++; $n++;

$fp = @fopen($file,"w");
if ($fp) {
$counter=fputs($fp,$a[0]."
");
$counter=fputs($fp,$a[1]."
");
$counter=fputs($fp,$a[2]."
");
$counter=fputs($fp,$a[3]."
");
fclose($fp);
}
else { echo "Произошла ошибка записи результатов!"; }

} else { echo "
Результаты голосования"; }
echo "
".$a1." - ".$a[0]."";
echo "
".$a2." - ".$a[1]."";
echo "
".$a3." - ".$a[2]."";
echo "
".$a4." - ".$a[3]."";
echo "

Всего проголосовало: ".$n;
echo ""
?>


Пару советов :

Я вообще ленивый человек , но не люблю оставлять дырки.

В данном голосование 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 "
Результаты голосования"; }

Вуаля !
Скрипт ГОТОВ !!!
Теперь голосуйте сколько хотите !

KLEVO




Комментарии
Оставить комментарий

alala | 27-12-11 00:46
$answer=$_POST['answer'];

в php файле не хватает этой части кода


Алекс | 18-04-09 16:00
Мало того что скрипт не работает, так текст этого скрипта все выкладывают на сайтах с одной и той же ошибкой. Нет закрывающих скобок тега <input>


Сергей | 15-04-09 18:30
Спасибо!
Но скрипт не работает.



Павел | 25-05-08 20:16
ну если не ошибаюсь это переводится, как:
$n = $n+$a[$i];
$i++;
Вообще в скрипте vote.php нада заменить все эти %2B на + потому, что может криво работать...


Антон | 15-08-06 14:32
$n = $n%2B$a[$i];
$i%2B%2B;

Как это переводится?

Имя:
E-mail:
Сообщение:


Число=
укажите сумму чисел на картинке

   очистить

популярные статьи по теменовые статьи
Создание видео из фотографий в программе "ФотоШОУ"
Разное / Обработка фото и видео
Больница для компьютера
железо / Система
Чем так популярны социальные сети?
Разное / разное
Синхронизация данных с сотового телефона на ПК
железо / Мобильные устройства
Куплю хостинг
web - разработка / Хостинг

Опрос
На что Вы обращаете внимание в первую очередь при покупке товара в интернет-магазине?  
 
Комментарии и оценку пользователей
Наличие нескольких фотографий
Подробное и качественное описание
Условия доставки
Возможность покупки в кредит
 
Самое свежее  
 ПРОГРАММЫ

ICQ 8.0.5990
ICQ 8.0.5990

Mozilla Firefox 18.0.2
Mozilla Firefox 18.0.2

ArtMoney 7.40.4
ArtMoney 7.40.4

 НОВОСТИ

Хакерская атака на Google из Китая
Хакерская атака на Google из Китая

Мы победили! Олимпиада 2014 пройдет в Сочи
Мы победили! Олимпиада 2014 пройдет в Сочи

 БИБЛИОТЕКА

Создание видео из фотографий в программе "ФотоШОУ"
Создание видео из фотографий в программе "ФотоШОУ"

Больница для компьютера

 
Рекомендую!



Copyright © 2004-2024 MostInfo.net  | связь с админом
При использовании материалов сайта ссылка на MostInfo обязательна.