Отправляет email-рассылки с помощью сервиса Sendsay

Все о PHP и даже больше

  Все выпуски  

Все о PHP и даже больше


Информационный Канал Subscribe.Ru


Все о PHP и даже больше...

.:: Путь от начинающего до эксперта ::.

# 7
4/2003

27 февраля 2003г.

Проект сайта "GreatWeb Design" GreatWeb.ru


    В этом выпуске:

  • Наш проект.
  • Своя система голосования
  •   Ссылки Вебмастеру:

  • Лучший хостинг
  • Раскрутка
  • Советы Web-мастеру
  • Книги по программировании
  • WEB-браузеры
  • Фоны
  • Скрипты
  • HARDWARE
  • Партнерская программа
  • DwebHost.RU

  • Здравствуйте!

    Описание нашего проекта:

     

    Приветствую!
    Сейчас происходит пополнение GreatWeb.RU свеженькой информацией. Добавлен раздел "Интернет Новости" - только здесь самые последние новости из мира Интернет.
    И это далеко не все… просто зайдите на www.greatweb.ru и сами все узнаете…
    А так же задавайте свои, любые вопросы на наш форум продвинутых юзеров.


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


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

    В общем, достоинства собственной системы голосования очевидны. Но что делать, когда под рукой нет необходимого скрипта? Можно, конечно, воспользоваться бесплатными системами голосования, которые позволяют Вам установить форму с несколькими вопросами на свой сайт. В этом случае сам скрипт находиться на удаленном сервере и выполняет всю работу. Но, на мой взгляд, это не очень подходящий вариант: во-первых, эти системы вставляют свой баннер в голосование, во-вторых, работоспособность системы от Вас совершенно никаким образом не зависит. Также, некоторые системы требуют довольно продолжительного нахождения в Сети, поскольку вся настройка голосования происходит обычно 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>Отлично!<br>
    <input type="Radio" name=vote value=2>Так себе, потянет...<br>
    <input type="Radio" name=vote value=3>Ужасно!!!<br>
    <input type="Submit" value=" Голосовать!"><br>
    <a href="/php/vote.php?id=1" target="_blank">Текущие результаты</a>
    </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 "<b><font color=red>
    Спасибо за Ваше мнение!
    </font></b>";
    // выводим заголовок голосования - 1я строка файла
    echo "<b>$data[0]</b>";
    // печатаем список ответов и результатов - остальные строки
    for ($i=1;$i $votes = split("~", $data[$i]); // значение~ответ
    echo "$votes[1]: <b>$votes[0]</b><br>";
    }
    // если это не просмотр результатов, а голосование,
    // производим необходимые действия для учета голоса
    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 код формы и код, выводимый в скрипте. Здесь очень просто что-либо изменить.


    Большое спасибо сайту http://getinfo.ru/ (Дмитрий Меладзе)


    © 2002-2003 Copyright by GreatWeb Design
    Копирование материалов рассылки возможно только в случае явного указания на сайт "GreatWeb.RU" как на источник информации.


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное