Перейти к содержимому

Poll


Samir

Recommended Posts

Так-с...

Для начала надо определиться, о чем мы будем спрашивать посетителей. Например, понравился им ваш сайт или нет.

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

В первом будет находиться форма с голосованиемю (form.html).

Второй файл будет отвечать за обработку результатов (golos.php).

В третьем будут храниться данные голосования (data.txt).

Четвертый будет отвечать за выдачу графической информации (img.php).

Например мы хотим задать посетителям следующие вопросы:

Ваше мнение о сайте: просто супер, нормальный, так себе, мне все равно, плохой, хуже не видел.

В файл form.html запишем:

<form action=golos.php method=post>

<table cellspacing cellpadding=0 border=0>

<tr><td align=center colspan=2><B>Голосование:</B></td></tr>

<tr><td align=center colspan=2><B>Ваше мнение о сайте:</B></td></tr>

<tr><td><input type=radio name=otv value=1 checked></td>

<td>Просто супер!</td></tr>

<tr><td><input type=radio name=otv value=2></td>

<td>Нормальный.</td></tr>

<tr><td><input type=radio name=otv value=3></td><

td>Так себе.</td></tr>

<tr><td><input type=radio name=otv value=4></td><

td>Мне все равно.</td></tr>

<tr><td><input type=radio name=otv value=5></td><

td>Плохой.</td></tr>

<tr><td><input type=radio name=otv value=6></td><

td>Хуже не видел!</td></tr>

<tr><td colspan=2 align=center>

<input type=submit name=golos value="Голосовать"></td></tr>

</table</form>

После нажатия кнопки Голосовать переменная otv перейдет на обработку сценарием в файле golos.php

В файл data.txt надо записать начальные данные, которые затем будут оттуда считаны и обработаны.

Создайте в файл data.txt и в текстовом редакторе запишите в него следующие строки:

Результаты голосования:

0

0

0

0

0

0

Первая строка у нас учитываться не будет.

В остальные шесть строк надо ввести нули, нажимая после каждой цифры клавишу Enter.

В файле golos.php, который у нас отвечает за обработку результатов, напишем следующее:

<html>

<head>

<title>Обработка голосования</title>

</head>

<body>

<?

if(@$golos) {

// Здесь мы запускаем обработку данных только если

// была нажата клавиша Голосовать

$file_name="data.txt";

// Переменная $file_name задает имя файла с результатами

$file=file($file_name);

// Записываем файл с данными в массив $file

$file_len=count($file);

// $file_len - количество строк в файле data.txt

for($i=1,$n=0;$i<$file_len;$i++) {

$file[$i]=trim($file[$i]);

$n=$n+$file[$i];

};

// В этом цикле мы убираем символы перевода строки и записываем в

// переменную $n сколько человек уже проголосовало

echo "<center><h2>Спасибо, Ваше мнение учтено!</h2></center>";

$file[$otv]++;

$n++;

// Здесь мы учитываем номер ответа, который пришел к нам из формы,

// увеличив соответствующее значение в массиве и число проголосовавших на 1

$rez="Результаты голосования:\n";

// Переменная $rez будет содержать данные о голосовании,

// которые затем запишем обратно в файл

for($i=1;$i<$file_len;$i++) $rez.=$file[$i]."\n";

$rez=trim($rez);

$file_rec=@fopen($file_name,"w");

// Здесь мы создаем новый файл, в который затем запишем обновленные данные

if($file_rec) {

$counter=fputs($file_rec,$rez);

// Запись обновленных данных в файл data.txt

fclose($file_rec);

}

else echo "Произошла ошибка записи результатов!";

for($i=1;$i<$file_len;$i++) $pr[$i]=round(($file[$i]/$n)*100);

// Записали в массив $pr, сколько процентов от общего числа голосовавших

// занимает каждый ответ

// Далее идет кусок HTML-кода, который

// отвечает за вывод наших данных на экран

?>

<center><h2>Ваше мнение о сайте:</h2></center><BR>

<table border=1 align=center>

<tr><td>

<B>Просто супер! (<?echo $file[1];?>):</B>

</td><td>

<img src="img.php?pr=<?echo $pr[1];?>" height=15>

</td></tr>

<tr><td>

<B>Нормальный. (<?echo $file[2];?>):</B>

</td><td>

<img src="img.php?pr=<?echo $pr[2];?>" height=15>

</td></tr>

<tr><td>

<B>Так себе. (<?echo $file[3];?>):</B>

</td><td>

<img src="img.php?pr=<?echo $pr[3];?>" height=15>

</td></tr>

<tr><td>

<B>Мне все равно. (<?echo $file[4];?>):</B>

</td><td>

<img src="img.php?pr=<?echo $pr[4];?>" height=15>

</td></tr>

<tr><td>

<B>Плохой. (<?echo $file[5];?>):</B>

</td><td>

<img src="img.php?pr=<?echo $pr[5];?>" height=15>

</td></tr>

<tr><td>

<B>Хуже не видел! (<?echo $file[6];?>):</B>

</td><td>

<img src="img.php?pr=<?echo $pr[6];?>" height=15>

</td></tr>

</table>

<table border=1 align=center>

<tr><td align=center><B>Всего проголосовало:</B></td></tr>

<tr><td align=center><?echo $n." человек";?></td></tr>

</table>

<?

};

?>

</body>

</html>

Записав в атрибут SRC тега <IMG> значение "img.php?pr=количество процентов" мы тем самым передаем файлу img.php (который отвечает за вывод графической информации) значение, на основании которого будет на лету сгенерировано изображение голосования. Далее приведу листинг файла img.php:

<?

$otstup=35;

// $otstup - задает отступ, в прелелах которого

// в картинку впишем процентное значение

$string=$pr."%";

// $string - содержит значение процентов плюс знак процента

$im=imageCreate($pr*2+$otstup,15);

// Здесь создаем идентификатор, при помощи

// которого мы будем работать с картинкой

$fon=imageColorAllocate($im,220,20,60);

$fon1=imageColorAllocate($im,255,20,147);

// Задаем цвет фона

$col_b=imageColorAllocate($im,0,0,0);

// Задаем цвет обводки

$shrift=imageColorAllocate($im,255,255,255);

// Цвет вывода процентного значения

imageFill($im,2,2,$fon);

// Заполнили наш прямоугольник основным фоном

$x1=0;$x2=$pr*2+$otstup-1;

$y1=0;$y2=14;

// Формирование улов для обводки контуром

imageLine($im,$x1,$y1,$x2,$y1,$col_b);

imageLine($im,$x2,$y1,$x2,$y2,$col_b);

imageLine($im,$x2,$y2,$x1,$y2,$col_b);

imageLine($im,$x1,$y1,$x1,$y2,$col_b);

imageLine($im,$x1+$otstup,$y1,$x1+$otstup,$y2,$col_b);

// Создание контура и разделяющей полосы

if($pr!=0) imageFill($im,$otstup+1,2,$fon1);

// Если значение процента не равно 0, то заполняем

// правую часть цветом $fon1

imageString($im,3,5,1,$string,$shrift);

// Пишем в правую часть картинки процентное значение

header("Content-type: image/png");

imagePng($im);

imageDestroy($im);

// Здесь производим вывод полученной картинки в

// стандартный поток вывода и уничтожаем идентификатор

?>

кеф елаин:)

Ссылка на комментарий
Поделиться на других сайтах

i esho, zabil, data.txt chmod : 777 nado, a to oshibku dast, rabotat ne bydet.

esli sdelat et teg

<input type=submit name=golos value="Голосовать">

tak

<input type=submit name=golos value="Голосовать"

onClick="javascript:window.open('golos.php','14','width=400,height=400,resizable,scrollbars=yes,name=1,screenX=60,screenY=100,top=20, left=20');void(0)" >

bydet voobshe shikarno, a cto bydet mojete uvidet

ZDES ( mojete tyt provert, kak script rabotaet:)) )

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks later...

ДЛЯ Samir

ТЫ не смог бы повесить ГОЛОСОВАЛКУ по след. теме :

ТЕМА --------------- ВСЕ ГОЛОСУЮТ !!! .....

ТЕКСТ -------------- НА какой М А Ш И Н Е гоняем ?!

1. 286

2. 386

3. 486

4. 586

5. P - 1

6. P - 2

7. P - 3

8. P - 4

9. P - 5

10. Другой

P/S. ИНТЕРЕСНА техническая оснащённость ФОРУМЧАН!

Ссылка на комментарий
Поделиться на других сайтах

lol, to cto ya sdelal golosovanie sovsem bashga sheydi:))

a kak ty xocesh qolosvanie, mojesh sam i delat, register nick i sdelay NEW POLL i tam zadavay svoi voprosi, et golosovanie foruma:) a moy POLL ne kasaetsa etogo foruma, et prosto script poll'a, dla tex kto xochet y seba postavit poll' i nauchitsa kak et delat.

Ссылка на комментарий
Поделиться на других сайтах

Samir OK !.... С POLL проблем нет ....( у меня другое ).

Я СПЕЦИАЛЬНО НЕ РЕГИСТРИРУЮСЬ по ПРИНЦИПИАЛЬНЫМ СООБРАЖЕНИЯМ и поэтому не могу САМ повесить ГОЛОСОВАЛКУ !

ТЕБЕ SAQ OL !

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Загрузка...
×
×
  • Создать...