Php cкрипт голосования

Php скрипт голосования это необходимый, но не обязательный скрипт для динамического сайта. Полезность его состоит в том, что с помощью него можно накапливать статистику для сайта по какому-либо интересующему вопросу. Это может быть все, что угодно, например мнение посетителей сайта о дизайне самого сайта, о навигации, о качестве и полезности информации представленной на сайте. Кроме всего прочего полезность данного php скрипта состоит еще и в дополнительных перезагрузках страницы сайта, что приносит дополнительные хиты сайту, увеличивая показания рейтинговых счетчиков, которые стоят практически на любом сайте.

Для создания php скрипта голосования создадим папку vote в папке php нашего проекта, куда и разместим скрипт голосования со всем необходимым. Скрипт голосования можно выполнить с учетом IP пользователей, дабы блокировать повторные голосования, но чтобы не усложнять задачу, остановимся на простом скрипте, в котором легко можно будет проследить суть его работы.

Скрипт, а точнее форму для голосования можно выполнить по разному. Можно создать отдельную страницу, переход на которую будет по ссылке с любой страницы сайта, а можно форму для голосования разместить на одной из панелей навигации. Тогда форма голосования будет присутствовать на любой странице сайта и это даст возможность посетителю в любой момент, находясь на любой странице сайта выразить свое мнение в соответствии с проедлагаемой формой голосования. Если форму для голосования размещать, например на боковой панели навигации, то ее желательно размещать на правой панели в самом низу. Таким образом код формы будет располагаться за текстом страниц ближе к футеру (низу или подвалу) сайта. Это оставит неизменным положение кода текста страниц по отношению к верху сайта, что очень важно в части индексирования самих страниц.

Для начала необходимо создать форму для голосования, где будут несколько радиокнопок и несколько простых не напрягающих пользователя вопросов и встроить этот код на правую панель навигации, в файл bottom.html нашего шаблона, добавив к файлу mysite.css несколько строк. Код формы представлен ниже.

<div>
<!--начало формы голосования-->
<form method="post" action="http://mysitephp.ru/vote.html">
<p>Сайт:</p>
<br />
<input type="radio" name="game" value="1" />плохой<br />
<input type="radio" name="game" value="2" checked="checked" />хороший<br />
<input type="radio" name="game" value="3" />отличный<br />
<br />
<input class="svoice" type="submit" value="Голосовать" />
</form>
<!--конец формы голосования-->
</div>

Выполнить эту операцию в Dreamweaver будет нетрудно. Для этого необходимо открыть файл шаблона bottom.html и поместить код формы в место выделенное под форму для голосования.

Далее необходимо подготовить страницу с таблицей, где будут в процентном и графическом виде отображаться результаты голосования. Для этого нужно средствами Dreamweaver создать новую html страницу и сохранить ее под названием vote.html в папке vote. Процесс создания новой html страницы в Dreamweaver уже описан на соответствующей странице. Полный путь к файлу будет D:/Mysitephp/php/vote/vote.html. Чтобы не придумывать велосипед код таблицы можно скачать и разместить его в сформированном файле vote.html с последующим сохранением, нажав комбинацию клавиш Ctrl+S.

Php скрипт голосования разместим в файле vote.php, а сам файл, созданный в Dreamweaver, как новый php документ сохраним в папке vote. Полный путь к файлу будет D:/Mysitephp/php/vote/vote.php. При всех вышеописанных действиях необходимо следить за кодировкой вновь создаваемых файлов и при небходимости ее корректировать. Код самого скрипта представлен ниже:

<?

error_reporting(0);

// Присвоение $general_file php/vote/vote.dat
$general_file = ("php/vote/vote.dat");
// Чтение в массив $general_file
$general = @file($general_file);
// Присвоение $con_a,$con_b,$con_c элементов $general[$i]
for ( $i = 0; $i < count($general); $i++)
list($con_a,$con_b,$con_c)=explode("-", $general[$i]);
// Проверка данных переданных из формы для голосования
if($game == 1)
$con_a++;
if($game == 2)
$con_b++;
if($game == 3)
$con_c++;
// Операции с файлом данных
$fp = fopen("$general_file","w");
flock($fp,LOCK_EXT);
fputs($fp,"$con_a-$con_b-$con_c");
fclose ($fp, "$general_file");
// Подсчет и оругление процентов голосования
$vote_sum = $con_a + $con_b + $con_c;
$content0 = round ( $con_a * 100 / $vote_sum);
$content1 = round ( $con_b * 100 / $vote_sum);
$content2 = round ( $con_c * 100 / $vote_sum);
// Перемещение в $vote_result в виде строки файла таблицы результатов
$vote_result = file_get_contents ("php/vote/vote.html");
// Счетчик голосов перемещение общего колич. проголосовавших
$vote_result = str_replace("%vote_sum%","$vote_sum",$vote_result );
// Перемещение готовых данных на сответствующие места
$vote_result = str_replace("%content0%","$content0",$vote_result );
$vote_result = str_replace("%content1%","$content1",$vote_result );
$vote_result = str_replace("%content2%","$content2",$vote_result );

?>

Чтобы данный скрипт работал необходимо внести некоторые добавления в php файл перехода по ссылкам move.php. Полезно будет это проделать самостоятельно.

При самостоятельном внесении изменений, о которых шла речь выше, могут быть допущены ошибки. Чтобы выяснить в чем, можно скачать проект обновленный php скриптом голосования и для устранения разночтений заменить им предыдущий, внимательно изучив изменения проведенные в скриптах. Далее все как обычно, выполнив синхронизацию, запустить в браузере локальный сайт, и поработав с формой для голосования, убедиться, что все работает, как задумано.

Top.Mail.Ru