Бесповоротный vote php. Бесповоротный

AJAX и легко интегрируется на html страницы. Голосование и вывод показателей в скрипте происходит без перезагрузки страницы, и для каждого IP адреса голосовать можно только 1 раз в сутки.

Я вам привожу в пример три варианта скрипта , из которых вы сами выберите, какой установить к себе на сайт.

Второй вариант почти такой же, только вместо вывода общего числа проголосовавших, он показывает сколько посетителей проголосовало "за ", и сколько "против ".

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

Код для *.html


Для того, чтобы формы голосования на всех ваших страницах работали от одного скрипта, нужно на каждой странице в коде (выше) сделать одно изменение.
А именно здесь: id="vt_article1" изменяете только вторую часть после vt_ . Придумывать можно абсолютно любые имена, только латиницей разумеется, и так для каждой страницы - своё имя. Всё, изменений больше делать никаких не нужно, кроме того, что если изменить оформление в стилевом файле, и заменить в скрипте латиницу на русские слова.

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

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

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

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

Все, что от Вас потребуется - это начальные (буквально азы) знания PHP и хостинг с поддержкой этого языка. Данный скрипт сейчас успешно работает на площадке провайдера http://www.eServer.ru .

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

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

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

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

Как Вам наш новый дизайн?

Отлично!
Так себе, потянет...
Ужасно!!!

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

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

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

Продолжаем. Нашему скрипту потребуется собственная база данных с текстами вопросов и ответом к ним. Конкретное голосование - это один вопрос и набор ответов к нему, а также количество мнений на каждый ответ. Все голосования хранятся в отдельных текстовых файлах и определяются по переменной id, передаваемой через форму. В примере id - это цифра (или что угодно другое), которая является первой частью имени файла. Для примера, если id=1, значит база данных голосования лежит в таком файле: 1.dat или, в терминах PHP, $id.dat.
Впрочем, Вы увидите это далее на конкретном примере. Отсюда получается, что для создания голосования Вам достаточно создать новый файл в очень простом формате (см. далее) и html-форму, содержащую тексты вопросов и id голосования.

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

Как Вам наш новый дизайн? 5~Отлично! 3~Так себе, потянет... 1~Ужасно!!!

Где 1я строка: это сам вопрос, остальные строки - пара "количество_мнений~ответ", как Вы поняли, разделенных тильдой "~". Теперь все, что нам осталось, это обрабатывать результаты.

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

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

    См. окончательный... Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. бесповоротный безвозвратный, окончательный, отличительный, решительный; конечный, последний … Словарь синонимов

    БЕСПОВОРОТНЫЙ, чего нельзя повернуть, что не перевертывается; | невозвращаемый, не отдаваемый обратно, безобратный, безвозвратный. Отдай должок; аль ты брал бесповоротно? Бесповоротность, безвозвратность. Толковый словарь Даля. В.И. Даль. 1863… … Толковый словарь Даля

    БЕСПОВОРОТНЫЙ, бесповоротная, бесповоротное; (кратк. мужск. не употр.) бесповоротна, бесповоротно. Окончательный; такой, который не будет изменен. Бесповоротное решение. Толковый словарь Ушакова. Д.Н. Ушаков. 1935 1940 … Толковый словарь Ушакова

    Прил. Такой, который не будет изменен; окончательный. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой

    Бесповоротный, бесповоротная, бесповоротное, бесповоротные, бесповоротного, бесповоротной, бесповоротного, бесповоротных, бесповоротному, бесповоротной, бесповоротному, бесповоротным, бесповоротный, бесповоротную, бесповоротное, бесповоротные,… … Формы слов

    бесповоротный - бесповор отный; кратк. форма тен, тна … Русский орфографический словарь

    бесповоротный - кр.ф. бесповоро/тен, бесповоро/тна, тно, тны … Орфографический словарь русского языка

    бесповоротный - Syn: окончательный, отличительный, решительный (редк.) … Тезаурус русской деловой лексики

    Ая, ое; тен, тна, тно. Такой, который не будет изменён; окончательный. Б ое решение. ◁ Бесповоротно, нареч. Отказать решительно и б. Бесповоротность, и; ж … Энциклопедический словарь

    бесповоротный - ая, ое; тен, тна, тно. см. тж. бесповоротно, бесповоротность Такой, который не будет изменён; окончательный. Б ое решение … Словарь многих выражений

Книги
  • Жизнь Петра Великого , . Редкость! Санкт-Петербург, 1890 год. Издание редакции журнала "Досуг и дело" . Иллюстрированное издание. Владельческий переплет. Кожаный бинтовой корешок. Сохранностьхорошая. Преобразования…
  • Царица Евдокия, или Плач по Московскому царству , Козляков Вячеслав Николаевич. Последняя московская царица, отвергнутая жена царя Петра I, монахиня Елена, заточенная сначала в Суздальском Покровском монастыре, а затем в бастионе Шлиссельбургской крепости, и, наконец,…

Бывает необходимым организовать на сайте систему голосования пользователей. Например, это может быть система голосования за товары на сайте-каталоге и организация рейтинга товаров в соответствии с числом поданных голосов. Рассмотрим пошагово, как написать скрипт голосования.

1. Скрипт голосования на сайте удобно разместить в отдельном файле, например, votes.php. Наш скрипт должен создавать таблицу базы данных о голосах за каждый конкретный товар, таблица создаётся автоматически при первом голосовании за данный товар. Ведь не заставлять же администраторов сайта-каталога создавать таблицу вручную при внесении в каталог каждого нового товара! Таблица содержит поля, ответственные за идентификационный номер голоса, идентификационный номер товара, собственно переменной, обозначающей, что голос подан (можно придать ей значение "1", строки с этими полями затем подсчитываются при формировании рейтинга), IP пользователя (но можно и без него), ник пользователя и категорию товара.

Код PHP/MySQL

mysql_query ("CREATE TABLE IF NOT EXISTS votes_$cid (

vid int(10) NOT NULL auto_increment,

id int(10) NOT NULL,

pluss int(10) NOT NULL,

ip_addr char(50) NOT NULL,

nick varchar(255) NOT NULL,

dat_lim date NOT NULL,

cid int(10) NOT NULL,

PRIMARY KEY(vid)

) ENGINE=MyISAM DEFAULT CHARSET=utf8") Or die (mysql_error ());

Показанная в коде выше конструкция автоматического создания таблицы является предметом вопроса в .

Пусть на сайте голосовать имеют возможность лишь зарегистрированные пользователи, можно установить ограничение голосования по дате, установить суточный лимит голосования за тот или иной товар (это всё на случаи, если есть подозрения в "накрутке голосов"), а также открывать голосование лишь спустя некоторое время после появления товара в каталоге, а также устанавливать дату окончания голосования, если этого требует конкретная бизнес-логика.

2. В нашем скрипте должна происходить проверка, отправлены ли данные из формы, то есть, нажал ли посетитель каталога кнопку "голосовать" (за это отвечает переменная $_POST["sended"] со значением "yes"). Далее - проверка, является ли проголосовавший зарегистрированным пользователем ($rights>0). Если есть необходимость завершить голосование за тот или иной товар к определённой дате - проверка, не завершено ли голосование ($end_dat

Код PHP

if ($_POST["sended"]=="yes")

if ($rights>0)

if ($row01==0)

$dat=date ("Y-m-d H:i:s");

if ($end_dat

elseif ($dat

3. Если в соответствии с датой голосовать можно, выполняется блок голосования. Однако в его начале происходит проверка, не исчерпан ли суточный лимит голосования за данный товар, а также проверка на случай, если голосование ещё не открыто. Если всё в порядке и голосовать можно, данные заносятся в базу, в ту её таблицу, которая содержит данные о голосовании за данный товар (таблица votes_$cid). Далее путём нового запроса к этой же таблице подсчитывается число голосов (строк) за товар с данным id. Затем в таблицу с данными обо всех товарах (goods) соответственно id товара записывается обновлённое число строк, каждая из которых означает один голос за данный товар.

Код PHP

if ($end_dat

elseif ($dat

if ($row11

if ($v_cl==1)

elseif ($v_cl==0)

4. А ниже показано, что предусматривает программа в случае отрицательных ответов на обозначенные выше вопросы.

Код PHP

else

else

else

else

echo "It`snt OK";

5. И, наконец полный код блока, реализующего голосование. Нужно только перед показанным кодом сделать проверку (if (isset ...)), существуют ли значения переменных, переданных из формы для голосования в наш скрипт. А в самом верху разместить запрос к базе на создание новой таблицы (самый первый фрагмент кода)

Код PHP

$result01=mysql_query ("SELECT * FROM votes_$cid WHERE nick="$nick" AND id="$id"") or die (mysql_error ());

$row01 = mysql_num_rows ($result01);

$resultT=mysql_query ("select voting_closed,end_ FROM categories WHERE cid="$cid"") or die (mysql_error ());

$myrowT=mysql_fetch_array ($resultT);

$end_dat = $myrowT;

$v_cl = $myrowT;

$dat_new=date ("Y-m-d");

$resultL1=mysql_query ("select * FROM votes_$cid WHERE dat_lim="$dat_new" AND id="$id"") or die (mysql_error ());

$row11 = mysql_num_rows ($resultL1);

if ($_POST["sended"]=="yes")

if ($rights>0)

if ($row01==0)

$dat=date ("Y-m-d H:i:s");

if ($end_dat

elseif ($dat

if ($row11

if ($v_cl==1)

elseif ($v_cl==0)

$result1=mysql_query ("INSERT INTO votes_$cid

(id,ip_addr,nick,pluss,dat_lim,cid)

VALUES ("$id","$ip_addr","$nick","$pluss","$dat_new","$cid")");

$result2=mysql_query ("SELECT * FROM votes_$cid WHERE id="$id"") or die (mysql_error ());

$row2=mysql_num_rows ($result2);

$result3=mysql_query ("UPDATE goods SET votes="$row2" WHERE id="$id"");

else

else

else

else

echo "It`snt OK";

Осталось лишь вывести на видимых для пользователей страницах (на главной или на всех) рейтинг товаров в соответствии с количеством голосов, поданных за тот или иной товар. Для этого в запросе на отбор товаров из соответствующей таблицы базы данных указывается ранжирование по голосам. Но это уже другая история...