Ошибка: Failed to parse the Currency Converter XML document.
$1 984.28


Ошибка: Failed to parse the Currency Converter XML document.
$1 673.69


Ошибка: Failed to parse the Currency Converter XML document.
$48 356.95


Своя система голосования

Вы когда-нибудь хотели узнать мнение своих посетителей по тому или иному поводу?
Например, «что Вы хотите видеть на сайте» или «нравиться ли Вам наш новый дизайн» ?
Уверен, что такое желание возникало. Действительно, установка на сайте собственного
опроса или системы голосования позволяет не только копить бесценную информацию о том,
что думают Ваши посетители, но и придать сайту нелишнюю интерактивность.

В общем, достоинства собственной системы голосования очевидны.

Но что делать, когда под рукой нет необходимого скрипта? Можно, конечно,

воспользоваться бесплатными системами голосования, которые позволяют Вам установить
форму с несколькими вопросами на свой сайт. В этом случае сам скрипт находиться
на удаленном сервере и выполняет всю работу. Но, на мой взгляд, это не очень подходящий вариант:
во-первых, эти системы вставляют свой баннер в голосование, во-вторых, работоспособность системы
от Вас совершенно никаким образом не зависит. Также, некоторые системы требуют
довольно продолжительного нахождения в Сети, поскольку вся настройка голосования происходит обычно on-line.

А для некоторых пользователей это совсем немаловажный момент.


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

Да и позволит лишний раз попрактиковаться в программировании, что обычно не является лишним занятием для труженика сети :)

В этой статье я хочу показать Вам, как несложно сделать столь полезный скрипт голосования своими силами.

Эта система реализует практически все необходимые функции.

Все, что от Вас потребуется — это начальные (буквально азы) знания php и хостинг с поддержкой этого языка.

Данный скрипт сейчас успешно работает на площадке провайдера
http://www.eserver.ru, чего и Вам настоятельно рекомендую.

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

В общем, хостинг в eserver на уровне.

Итак, начнем.

Давайте представим, что мы на сайте хотим объявить следующее голосование:

ВАШЕ МНЕНИЕ:
Как Вам наш новый дизайн?
5 - Отлично!
3 - Так себе, потянет...
1 - Ужасно!!!
Пусть Вас не смущает количество вариантов ответов, на конфигурируемости это никак не отражается.

Вы сможете задать любое количество вопросов (равно как и любой вопрос в принципе) — от одного
и до бесконечности безо всяких проблем.

Двигаемся дальше. Для начала нам нужно сделать этот опрос в виде html, определив имена для переменных.

< form action=«/php/vote.php» method=«get» target=«_blank»>
< input type=«hidden» name=id value=1>
Как Вам наш новый дизайн?

< input type=«radio» name=vote value=1 checked>Отлично!

< input type=«radio» name=vote value=2>Так себе, потянет...

< input type=«radio» name=vote value=3>Ужасно!!!

< input type=«submit» value=« Голосовать! »>

Текущие результаты
form

Это все. Теперь можно приступить к самому скрипту. Как видно из формы, нашему скрипту передается две переменных:

id=1: это номер голосования. Дальше Вы увидите, как он используется для создания нескольких независимых голосований.

vote=1: номер ответа, то есть конкретно выбранный вариант ответа Вашим посетителем.

Также к нашему скрипту ведет ссылка «Текущие результаты», указывающая только параметр id,
без номера ответа. Дело в том, что скрипт при отсутствии параметра vote просто выводит результаты,
без сопутствующей благодарности «Спасибо за Ваше мнение!» и каких-либо действий по учету голосования.

Продолжаем. Нашему скрипту потребуется собственная база данных с текстами вопросов и ответом к ним.

Конкретное голосование — это один вопрос и набор ответов к нему, а также количество мнений на каждый ответ.

Все голосования хранятся в отдельных текстовых файлах и определяются по переменной id, передаваемой через форму.

В примере id — это цифра (или что угодно другое), которая является первой частью имени файла.

Для примера, если id=1, значит база данных голосования лежит в таком файле: 1.dat или, в терминах php, $id.dat.

Впрочем, Вы увидите это далее на конкретном примере.

Отсюда получается, что для создания голосования Вам достаточно создать новый файл в
очень простом формате (см. далее) и html-форму, содержащую тексты вопросов и id голосования.

Итак, раз уж мы с Вами определились, что данные голосования хранятся в отдельных файлах,
давайте рассмотрим формат конкретного файла. Он имеет такой вид:

Как Вам наш новый дизайн?
5~Отлично!
3~Так себе, потянет...
1~Ужасно!!!
Где 1я строка: это сам вопрос, остальные строки — пара «количество_мнений~ответ», как Вы поняли,
разделенных тильдой «~». Теперь все, что нам осталось, это обрабатывать результаты.

Это делает следующий скрипт:

<?
// файл с конкретным голосованием
$data = file(«$id.dat»);

// выводим благодарности,
// если это не просто просмотр результатов
if ($vote) echo «
Спасибо за Ваше мнение!

»;

// выводим заголовок голосования — 1я строка файла
echo «$data[0]

»;

// печатаем список ответов и результатов — остальные строки
for ($i=1;$i $votes = split(«~», $data[$i]); // значение~ответ
echo «$votes[1]: $votes[0]
»;
}

// если это не просмотр результатов, а голосование,
// производим необходимые действия для учета голоса
if ($vote) {
$f = fopen(«$id.dat»,«w»);
fputs($f, «$data[0]»);
for ($i=1;$i $votes = split(«~», $data[$i]);
if ($i==$vote) $votes[0]++;
fputs($f,«$votes[0]~$votes[1]»);
}
fclose($f);
}
?>

Собственно, это все, что требуется. Как видите, скрипт достаточно прост,
не выполняет каких-либо специфический действий, да и ресурсов много не потребляет.

Конечно, сюда можно добавить многие другие полезные функции, например, сделать
администраторский интерфейс для управления голосованиями через броузер и держать все данные
по голосованиям в одном файле, чтобы не возиться каждый раз с $id.dat. Но это — в следующий раз,
а пока моей целью было показать Вам, что столь полезная система голосования очень просто реализуется.

Теперь Вы можете создать свой собственный дизайн, поправив html код формы и код, выводимый в скрипте.

Здесь очень просто что-либо изменить.

Надеюсь, мой материал сможет быть Вам полезен и пригодиться на практике.

При возникновении любых вопросов, пишите мне на e-mail.

 

Интересное

Закачка файла на сервер с PHP
В более поздних версиях есть возможность использовать специальный массив ($http_post_files), но в данном уроке описывается более ранний метод.В нашем примере мы будем использовать следующий код...
Подробнее...
Java-приложение: заглянем...
Чтобы отладить приложение, можно поступить по-разному. Во-первых, можно воспользоваться штатным отладчиком из какого-либо программного пакета. Во-вторых, можно самостоятельно вычислить ошибку...
Подробнее...
Жертва в кроватке или как...
Бывает такое с человеком, бывает. Особенно сильно это проявляется, когда он узнает, что не прикладывая особых усилий он может достичь чего-то значительного. Называется такое «это»...
Подробнее...
Ошибки Windows!
Каждый хочет знать когда на экране его выскакивает ошибка с чем она связана!Код ошибки: 0 (0x0000)Операция выполнена успешно.Код ошибки: 1 (0x0001)Неверная функция.Код ошибки: 2 (0x0002)Системе не...
Подробнее...
Выпуск iPad Mini – роковая...
Первые слухи о намерениях корпорации Apple выпустить новый компактный планшет, цена которого будет составлять не более $299, по всей видимости, становятся вполне настойчивыми, чтобы применить к...
Подробнее...
Перл для чайников от NS
Эту статью я решил написать, после того как узнал насколько сложно «врубиться» во всё, даже если у вас есть под рукой какое либо пособие по PERL. Везде, уже в самом начале, начинают ссылаться на...
Подробнее...
Продвижение сайтов в...
Описание: Продвижение сайтов в поисковых системах и интернет-маркетинг поисковых машин очень актуальны в современном бизнесе для достижения коммерческого успеха. Эта книга — прежде всего...
Подробнее...
Unix+ Samba + ftpd,...
Есть такая проблема: сложно найти ftpd, понимающий перекодировку имен файлов. Если хранить файлы на сервере в koi8, то ftpшник выдает винде крякозябры. Если хранить в CP1251, то ftp не передает...
Подробнее...
Флэшка или чудо будущего...
Могли ли бы мы раньше, при союзе, представить себе то, что устройство размерами меньшее, чем коробок спичек способно уместить в себе картинную галерею, архив деловой переписки или музыкальный...
Подробнее...
Top 10 ошибок конфигурации...
Установить Linux/BSD — не проблема, инсталлятор все сделает за нас, а вот правильно настроить систему, чтобы ее тут же успешно не атаковали хакеры, удается далеко не каждому. Проанализировав...
Подробнее...