|
|
|
| Всем привет!!! Возникла такая идея создать множественное голосование. Можно посмотреть здесь http://etph.org.ru/pol/p.htm Вопрос опроса "Как вам объясняют общую физику?"
И так по делу. Ниже приведены листинги они все подписаны. Нужно сделать следующее.
Нужно выбрать радио-кнопкой три варианта ответа и отправить результаты скрипту write.php, чтоб тот записал их в три различных файла lek.txt, upr.txt, vuz.txt. А затем скрипт echo.php вывел все результаты из этих файлов.
Сам пробывал сделать самостоятельно но без результата. Поэтому огромная просьба помочь осуществить эту задумку. Спасибо!
HTML-код опроса p.htm
<html>
<body>
<tabel>
<tr>
<td>
<form action="/pol/write.php" method="post">
<b>Лекции</b>
<table cellpadding="5">
<input type="hidden" name="name1" value="lek">
<colgroup align="right"></colgroup><colgroup></colgroup>
<tr><td><b>Хорошо</b>:</td><td><input type="radio" name="vote1" value="0"></input></td></tr>
<tr><td><b>Средне</b>:</td><td><input type="radio" name="vote1" value="1"></input></td></tr>
<tr><td><b>Плохо</b>:</td><td><input type="radio" name="vote1" value="2"></input></td></tr>
</input>
</table>
<b>Упражнения</b>
<table cellpadding="5">
<input type="hidden" name="name2" value="upr">
<colgroup align="right"></colgroup><colgroup></colgroup>
<tr><td><b>Хорошо</b>:</td><td><input type="radio" name="vote2" value="0"></input></td></tr>
<tr><td><b>Средне</b>:</td><td><input type="radio" name="vote2" value="1"></input></td></tr>
<tr><td><b>Плохо</b>:</td><td><input type="radio" name="vote2" value="2"></input></td></tr>
</input>
</table>
<b>Какой ВУЗ?</b>
<table cellpadding="5">
<input type="hidden" name="name3" value="vuz">
<colgroup align="right"></colgroup><colgroup></colgroup>
<tr><td><b>МИФИ</b>:</td><td><input type="radio" name="vote3" value="0"></input></td></tr>
<tr><td><b>Другой</b>:</td><td><input type="radio" name="vote3" value="1"></input></td></tr>
</input>
</table>
<table>
<tr><td align="right"><input type="submit" value="Голосовать"></input></td></tr>
</table>
</form>
</td>
</tr>
</tabel>
</body>
</html>
|
write.php — скрипт обработки поступающих «голосов»
<?php
# Argon PHP-Voting 0.1 (write.php)
# Copyright 2004 Argon
# http://argon.com.ru/
extract($HTTP_POST_VARS);
extract($HTTP_GET_VARS);
# Не позволять повторно голосовать, в днях
$days=1;
if(isset($vote) and $name and !isset($HTTP_COOKIE_VARS['opros-'.$name]))
{
@$results=file($name.'.txt') or exit('<b>Неверное имя опроса.</b>');
$count=count($results);
for($n=0;$n<$count;$n++)
{
$temp= explode('¦',$results[$n]);
settype($temp[1],'int');
$vname[$n]=$temp[0];
$vnumb[$n]=$temp[1];
}
if(is_array($vote))
{
foreach($vote as $k=>$v)
{
$vnumb[$k]=$vnumb[$k]+1;
}
}
else
{
$vnumb[$vote]=$vnumb[$vote]+1;
}
$write='';
for($n=0;$n<$count;$n++)
{
$write=$write.$vname[$n].'¦'.$vnumb[$n]."\n";
}
$fp=fopen($name.'.txt','w');
fwrite($fp,$write);
fclose($fp);
setcookie('opros-'.$name,'1',time()+60*60*24*$days);
echo('<b>Ваш голос успешно обработан.<b>');
# Чтобы не выводить результаты после голосования, поставьте # перед include...
include('echo.php');
}
elseif(isset($HTTP_COOKIE_VARS['opros-'.$name]))echo('<b>Вы уже сделали свой выбор. Чтобы проголосовать снова, приходите через сутки.</b>');
else echo('<b>Неверное обращение к скрипту.</b>');
?>
|
echo.php — скрипт вывода результатов голосования
<?php
# Argon PHP-Voting 0.1 (echo.php)
# Copyright 2004 Argon
# http://argon.com.ru/
extract($HTTP_POST_VARS);
extract($HTTP_GET_VARS);
if($name)
{
@$results=file($name.'.txt') or exit('<b>Неверное имя опроса.</b>');
$count=count($results);
for($n=0;$n<$count;$n++)
{
$temp= explode('¦',$results[$n]);
settype($temp[1],'int');
$echo[$temp[0]]=$temp[1];
}
$sum=array_sum($echo);
# Расположить по убыванию
arsort($echo);
# Расположить по возрастанию
#asort($echo);
# 100% ширины "шкалы", в пикселях
$longall=200;
echo('<table cellpadding=5>');
foreach($echo as $k=>$v)
{
$long=sprintf('%d',$v/$sum*$longall);
$percent=sprintf('%02.2f',$v/$sum*100);
echo('<tr><th align="right">'.$k.'</th><td><div style="height:10px;width:'.$long.'px;background-color:black"></div></td><td>'.$v.'</td><td>('.$percent.'%)</td></tr>');
}
echo('<tr><th align="right">Всего голосов</th><td><div style="height:10px;width:'.$longall.'px;background-color:black"></div></td><td>'.$sum.'</td><td>(100%)</td></tr>');
echo('</table>');
}
else echo('<b>Не задано имя опроса.</b>');
?>
|
lek.txt , upr.txt - файл с результатами опроса про лекции и про упражнения, соответсвенно
Хорошо¦0
Средне¦0
Плохо¦0
|
vuz.txt - файл с результатами опроса про Вузы
| |
|
|
|
|
|
|
|
для: major2
(06.07.2007 в 09:25)
| | задачу обязательно решать на файлах? MySQL под рукой нет? | |
|
|
|
|
|
|
|
для: Trianon
(06.07.2007 в 10:04)
| | Есть Mysql. Только я с ней пока ни разу не работал. А что с помощью базы все проще? | |
|
|
|
|
|
|
|
для: major2
(06.07.2007 в 10:11)
| | Самое время начать. Не пожалеете. | |
|
|
|