Смекни!
smekni.com

Разработка системы электронного голосования на странице промо-сайта олимпиады "Мастера Photoshop" (стр. 5 из 8)

Для работы нам понадобится три файла. В первом файле будем спрашивать посетителя о его мнении, во втором – хранить результаты и в третьем – выводить их и обрабатывать.

Острой необходимости сохранять все эти функции в разные файлы нет, но для простоты и удобства сделали именно так. Первый файл мы назвали index.phtml, второй – golos.txt и третий – golos.phtml.

В файле index.phtml создали форму. Для этого мы использовали язык гипертекстовой разметки HTML.

<form method=”POST” action=”golos.phtml”>

<table border=”1”><tr><td><table border=”0”>

<tr bgcolor="6ff392"><td bgcolor="6ff392">Чья работа вам понравилась больше?</td></tr>

<tr><td bgcolor="e261b3"><input type=”radio” name=”answer” value=1>Компаниец Татьяна Сергеевна

</td></tr>

<tr><td bgcolor="61b9e2"><input type=”radio” name=”answer” value=2> Прилепко Максим Анатольевич </td></tr>

<tr><td bgcolor="92ea3c"><input type=”radio” name=”answer” value=3> Козерук Алексей Сергеевич </td></tr>

<tr><td bgcolor="edf56e"><input type=”radio” name=”answer” value=4> Кудрявцев Никита Андреевич </td></tr>

<tr><td bgcolor="b695f2"><input type=”radio” name=”answer” value=5>Пуртова Алена Сергеевна

</td></tr>

<tr><td bgcolor="fa58e9"><input type=”radio” name=”answer” value=6> Степаненко Алексей Николаевич </td></tr>

<tr><td bgcolor="FF6633"><input type=”radio” name=”answer” value=7> Парначева Екатерина Евгеньевна</td></tr>

<tr><td bgcolor="00CC99"><input type=”radio” name=”answer” value=8>Каршков Илья Сергеевич

</td></tr>

<tr><td bgcolor="99FF66"><input type=”radio” name=”answer” value=9> Соломин Андрей Александрович </td></tr>

<tr><td bgcolor="0066CC"><input type=”radio” name=”answer” value=10> Свидерская Алина Сергеевна </td></tr>

<tr><td bgcolor="FF6666" ><input type=”radio” name=”answer” value=11> Будик Вергиния Игоревна </td></tr>

<tr><td bgcolor="9933FF"><input type=”radio” name=”answer” value=12> Карманова Юлия Михайловна </td></tr>

<tr><td bgcolor="CC0033"><input type=”radio” name=”answer” value=13> Илиенко Екатерина Игоревна </td></tr>

<tr><td bgcolor="FF9933"><input type=”radio” name=”answer” value=14> Волкова Татьяна Сергеевна </td></tr>

<tr><td bgcolor="6ed4f5"><input type=”radio” name=”answer” value=15> Радченко Юлия Игоревна </td></tr>

<tr><td bgcolor="CC9999"><input type=”radio” name=”answer” value=16> Бауэер Антон Александрович </td></tr>

<tr><td bgcolor="1eb1c7"><input type=”radio” name=”answer” value=17> Инголычев Дмитрий Леонидович </td></tr>

<tr><td bgcolor="FFFF00"><input type=”radio” name=”answer” value=18> Хорошун Ирина Валентиновна </td></tr>

<tr><td bgcolor="6ff392"><input type-“Submit” name=”vote” value=”Отправить”></td></tr>

<tr"><td td bgcolor="6ff392"><input type-“Submit” name=”result” value=”Смотреть результаты”></td></tr><tablex/td></tr></table></form>

Здесь нет ни строчки кода PHP, но мы задали файлу расширение PHTML, чтобы в дальнейшем в этот файл можно было вставить PHP-код. У нас получилась простая форма (приложение)

В HTML-коде всё просто, мы предлагаем указать с помощью переключателя нужный вариант ответа и нажать на кнопку «Отправить».

Этот код можно легко вставить на любую страницу и внести в него нужные изменения. И самое главное – данные из формы должны передаваться PHP-скрипту, обрабатывающему результаты, поэтому имя файла, присеваемое атрибуту action, должно соответствовать имени файла со скриптом.

Все имена форм, присвоенные в этом файле, станут соответствующими переменными в скрипте PHP, в который отправляются данные формы.

Файл golos.txt. В этом файле необходимо определиться, в каком формате мы будем хранить вводимую информацию. Проще всего организовать строки (по количеству вариантов ответов), номера которых будут соответствовать номеру выбранного варианта ответа. Информацию из файла golos.txt можно считывать с помощью команды PHP ввода файла в массив – file ($array). Массив всегда начинается с нулевого индекса, поэтому первая строка нашего файла не будет использована и в нее можно ввести все, что угодно, например строку «Результаты голосования». Далее введите ещё четыре строки с нолями. Не забывайте нажимать ввод для перевода строки.Это – результаты (начальные) нашего голосования и, пока никто не проголосовал, они нулевые.

Файл golos.phtml. Сначала мы задаём имя файла результатов и считываем результаты голосования в массив данных с именем $a. Дальше идёт цикл, в котором мы обрабатываем полученный массив таким образом, чтобы он не содержал символов перевода строки и пробелов. Удалять символы ввода и пробела необходимо для преобразования считанных данных из символьной строки в целое число. Это можно сделать разными методами, но в этом случае просто удаляются символы “/n” (что в PHP соответствует переводу строки) и обрезаются пробелы с начала и с конца строки функцией trim (). Результаты заносятся назад в массив, но уже в виде целочисленного значения, которое можно суммировать, увеличить на единицу, делить и т.д. Нас будет интересовать увеличение на единицу определённого элемента массива, индекс которого хранится в переменной $anawer, которая пришла кнам по наследству из формы. Паралельно ведем подсчет количества проголосовавших, что несложно, так как это просто сумма значений нашего массива.

После обработки полученного массива скрипт должен принять решение в соответствии с действиями посетителя – или показать результаты, или добавить голос в соответствующую позицию. Достигается это проверкой переменной $anawer, в которой сохраняется значение выбранного поситителем сайта варианта голосования. Если эта переменная пуста значит была нажата кнопка показана результатов, и скрипт пропустит блок подсчета голоса. Если переменная $anawer не пуста, в ней содержится номер выбранного варианта голосования, а значит, мы можем просто увеличить на единицу значение нужной ячейки массива. Кроме того, нужно увеличить значение количества проголосовавших, чтобы учесть голос только что проголосовавшего человека.

Когда нужная ячейка массива увеличена, нужно записать результаты в файл. Для этого сначала открывается соединение с файлом. Символ w указывает на необходимость очистки содержимого файла перед записью. Если соединение с файлом установлено, в файл записывается предварительно отформатированное значение переменной $rez, а если не установлено – выводиться сообщение об ошибке.

Переменна $rez формируется следующим образом: значение всех ячеек массива (кроме самой первой – нулевой, которая не используется) объединяется таким образом, чтобы разделителем был символ перевода строки. Это позволит в дальнейшем корректно считать полученные таким образом файл.

Для объединения строк PHP применяется точка. Наш массив из целочисленного перешел в разряд символьных. И наконец, пришла пора вывести результаты на экран. Перевод строки в HTML осуществляется при помощи тега <br>.

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

<?php

$file = “golos.txt”;

$a = file ($file);

$i = 1 $fi = count ($a);

$n = 0;

while ($i <=$fi):

$a [$i] = trim (str_replase (“&bsol;n”,””, $a[Si]));

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

$i++;

endwhile;

if ($answer !=”“) {

echo “<br>Спасибо, Ваше мнение учтено”;

$a [$answer]++; $n++;

$rez =”Результаты голосования &bsol;n”. $a [1].

“n&bsol;”.$a[2]. “&bsol;n” . $a[3]. “n&bsol;” . $a[4];

$fp = @fopen ($file, “w”);

If ($fp) {$counter = fputs {$fp,$rez); fclose ($fp); }

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

} else {echo “<br>Результаты голосования“;}

echo "<br> Компаниец Татьяна Сергеевна – <br> ".$a[1]. "</b> ";

echo "<br> Прилепко Максим Анатольевич – <br> ".$a[2]. "</b> ";

echo "<br> Козерук Алексей Сергеевич – <br> ".$a[3]. "</b> ";

echo "<br> Кудрявцев Никита Андреевич – <br> ".$a[4]. "</b> ";

echo "<br> Пуртова Алена Сергеевна – <br> ".$a[5]. "</b> ";

echo "<br> Степаненко Алексей Николаевич – <br> ".$a[6]. "</b> ";

echo "<br> Парначева Екатерина Евгеньевна – <br> ".$a[7]. "</b> ";

echo "<br> Каршков Илья Сергеевич – <br> ".$a[8]. "</b> ";

echo "<br> Соломин Андрей Александрович – <br> ".$a[9]. "</b> ";

echo "<br> Свидерская Алина Сергеевна – <br> ".$a[10]. "</b> ";

echo "<br> Будик Вергиния Игоревна – <br> ".$a[11]. "</b> ";

echo "<br> Карманова Юлия Михайловна – <br> ".$a[12]. "</b> ";

echo "<br> Илиенко Екатерина Игоревна – <br> ".$a[13]. "</b> ";

echo "<br> Волкова Татьяна Сергеевна – <br> ".$a[14]. "</b> ";

echo "<br> Радченко Юлия Игоревна – <br> ".$a[15]. "</b> ";

echo "<br> Бауэер Антон Александрович – <br> ".$a[16]. "</b> ";

echo "<br> Инголычев Дмитрий Леонидович – <br> ".$a[17]. "</b> ";

echo "<br> Хорошун Ирина Валентиновна – <br> ".$a[18]. "</b> ";

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

?>


2.3 Интерфейс и дизайн блоков голосования на Web-страницах

Многие сайтовладельцы зачастую недооценивают значимость дизайна блоков для голосования. А ведь это мощный инструмент для привлечения клиентов. Грамотный дизайн делает ресурс запоминающимся и удобным для пользователя.

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

Дизайн сайта – сложный и многоступенчатый процесс. Грамотный дизайн должен учитывать сразу несколько факторов: существующую имиджевую политику компании, специфику целевой аудитории, планы будущего развития, существующий бренд, проходившую рекламу и узнаваемость марки. Неудивительно, что в принятии решений о формирующемся дизайне сайта компании должны участвовать члены ее руководящей части. При создании сайта можно воспользоваться психологическими правилами восприятия информации, это дает отличные результаты. Размещение формы для голосования на первой странице сайта – отличный акцент на ключевых достоинствах фирмы. Восприятие остальной информации, представленной на сайте, будет проходить под правильным впечатлением. Таким образом, дизайн сайта может быть хорошим маркетинговым инструментом. В дизайне блоков так жеактуален фактор удобства работы с информацией, но при этом нельзя забывать и об огромном количестве технических факторов и деталей. Это делает работу дизайнера не такой простой, как может показаться, особенно, если ставящиеся задачи серьезнее, чем просто «сделать красивую картинку». Перед веб-мастером и перед клиентом стоят одни и те же задачи: надо создать такой ресурс, которым гордились бы и изготовители и заказчики. Но потребителями продукта, который продвигает заказчик, являются пользователи, и именно на их сторону мы становимся в процессе разработки. В Интернете теперь и не найдёшь сайт который бы не содержал каких либо форм, для регистрации, поиска, голосования и т.д. И красивое оформление этих форм и кнопок немаловажный момент в создании сайта.