Samir Опубликовано: 16 июня, 2002 Жалоба Share Опубликовано: 16 июня, 2002 Так-с... Для начала надо определиться, о чем мы будем спрашивать посетителей. Например, понравился им ваш сайт или нет. для нашего голосования нам потребуются четыре файла: В первом будет находиться форма с голосованиемю (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); // Здесь производим вывод полученной картинки в // стандартный поток вывода и уничтожаем идентификатор ?> кеф елаин Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Горячий Снег Опубликовано: 17 июня, 2002 Жалоба Share Опубликовано: 17 июня, 2002 После всего сказанного о кефе только мечтать остаеться Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Samir Опубликовано: 17 июня, 2002 Автор Жалоба Share Опубликовано: 17 июня, 2002 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:)) ) Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Гость shaos_alex Опубликовано: 26 июня, 2002 Жалоба Share Опубликовано: 26 июня, 2002 ДЛЯ 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. ИНТЕРЕСНА техническая оснащённость ФОРУМЧАН! Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Samir Опубликовано: 26 июня, 2002 Автор Жалоба Share Опубликовано: 26 июня, 2002 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. Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Гость shaos_alex Опубликовано: 27 июня, 2002 Жалоба Share Опубликовано: 27 июня, 2002 Samir OK !.... С POLL проблем нет ....( у меня другое ). Я СПЕЦИАЛЬНО НЕ РЕГИСТРИРУЮСЬ по ПРИНЦИПИАЛЬНЫМ СООБРАЖЕНИЯМ и поэтому не могу САМ повесить ГОЛОСОВАЛКУ ! ТЕБЕ SAQ OL ! Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
KLF Опубликовано: 11 июля, 2002 Жалоба Share Опубликовано: 11 июля, 2002 Халалду гагашым,бизим адамсан Цитата Ссылка на комментарий Поделиться на других сайтах More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.