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

Создать профессиональный web-сайт - легко! (выпуск 4)


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

Создать профессиональный web-сайт - легко!
Создать профессиональный web-сайт - легко!
или
все о PHP шаг за шагом.

     Сегодня в выпуске (N 4):
дата выпуска: 6 сентября 2004 
     ВНИМАНИЕ !!!
тираж выпуска: 935 
- Голосование на Вашем сайте
- ВОПРОС-ОТВЕТ
       ∙ задать вопрос
- Автору
- Интересное в сети

сайт рассылки: about-php.fatal.ru
архив рассылки: about-php.fatal.ru/archiv_mail.php
     Новости

  2.09.04 Добавлено новое в раздел "Статьи".
  29.08.04 Появилось руководство по PHP в разделе "Статьи".




     Голосование на Вашем сайте:
Добрый день уважаемые подписчики.

     Сегодня мы создадим голосование для сайта. Оно поможет Вам узнать мнения посетителей Вашего сайта на разные темы. Например, как им нравиться Ваш сайт. Не буду ударяться в подробности, т. к. это уже многие видели и знают. А для тех, кто не знает, зайдите на сайт там оно есть. Заодно и проголосуете. Ну вот, перехожу к делу. Нам опять нужны форма и скрипт-обработчик (файл voit.php). Форму Вы можете добавить куда угодно на сайт. Форма пускай будет выглядеть примерно так:
Вопрос: Как Вам нравиться эта рассылка?
Очень! Просто супер.
Неплохо.
Мне это не надо.


     И ее код:

<form method="post" action="voit.php">
<b>Вопрос:</b> Как Вам нравиться эта рассылка?
<br><table>
<tr><td>Очень! Просто супер.</td><td><input type=radio name=answer value=1 checked></td></tr>
<tr><td>Неплохо.</td><td><input type=radio name=answer value=2></td></tr>
<tr><td>Мне это не надо.</td><td><input type=radio name=answer value=3></td></tr>
<tr><td colspan=2><div align="right"><input type="submit" value="Ок"></div></td></tr>
</table></form>

     Итак, нажав кнопку "Ок", мы отправляем данные. Если поглядеть внимательнее, то можно заметить, что все 3 <input type=radio> имеют одно имя (name=answer), но разные значения (value=1, value=2, value=3). При выборе одного из предложенных ответов определяется то значение, которое мы выбрали. Например, если мы выбрали "Очень! Просто супер.", то определилось значение 1 у переменной answer в скрипте. А если "Мне это не надо.", то значение 3. Это удобно.

     Теперь их нужно обработать и записать. Записывать будем в файл voit1.dat, voit2.dat и voit3.dat. Так мы выяснили, что будет передаваться только значение одной переменной answer. Значит нужно определить какое именно значение передано и прибавить к счетчику. Определить какое значение передано можно с помощью функции if. Узнать об этой функции Вы можете из руководства по PHP, которое Вы можете скачать с сайта рассылки в разделе "Скачать". У нас это будет выглядеть так:

if($answer == 1){
...
}else if($answer == 2){
...
}else{
...
}

     Таким образом мы можем определить значение. Осталось определить какое число в файле и заменить, предварительно увеличив на единицу. Открываем на чтение через функцию file(путь к файлу). Чтение файла происходит в массив. Массив - это набор значений, присвоенных одной переменной. Чтобы обратиться к какому-либо значению, нам нужно ввести порядковый номер массива. Например, в нашем случае каждому элементу массива своя строка. А поскольку всего одна строка, то нам нужен всего лишь 1-ый элемент. Элемент пишем так: $название массива [порядковый номер]. Например, $voit1[0]. Счет начинается с 0.

$voit1=file("voit1.dat");
$voit1[0]++;// Мы выбираем значение 1 строки и увеличиваем на 1 спомощью оператора "++"; анологично уменьшаем - "--".

     Запись происходит по следующему сценарию: отрываем файл для записи, записываем и закрываем. Открываем с помощью функции fopen(путь к файлу, тип записи), добавляем fputs(переменная функции fopen, текст для записи), закрываем fclose(переменная функции fopen). У нас это будет выглядеть так:

$file=fopen("voit1.dat", "w+"); // присваиваем переменной файл для перезаписи
fputs($file, "");// добавляем текст, который находится между кавычками ("")
fclose($file);// закрываем

     Параметр w+ обозначает, что файл открывается для перезаписи (все старое стирается, начинается запись в первую строку). Подробнее узнать можно в статье "Работа с файлами" в разделе Статьи. В тексте для записи указываем число увеличенное на 1 и закрываем файл. Вот примерный вид записи в скрипте voit.php:

<?
if($answer == 1){

$voit1 = file("voit1.dat");
$voit1[0]++;

$file=fopen("voit1.dat", "w+");
fputs($file, $voit1[0]);
fclose($file);

}else if($answer == 2){

$voit2 = file("voit2.dat");
$voit2[0]++;

$file=fopen("voit2.dat", "w+");
fputs($file, $voit2[0]);
fclose($file);

}else{

$voit3 = file("voit3.dat");
$voit3[0]++;

$file=fopen("voit3.dat", "w+");
fputs($file, $voit3[0]);
fclose($file);

}
?>

     Осталось вывести результат работы на экран Опять открываем, но уже все файлы для чтения и выводим:

$voit1 = file("voit1.dat");
$voit2 = file("voit2.dat");
$voit3 = file("voit3.dat");
echo "Очень! Просто супер. - $voit1[0]<br><br>
Неплохо. - $voit2[0]<br><br>
Мне это не надо. - $voit3[0]<br><br>";

     Для удобства можно и проссумровать:

$summa = $voit1[0] + $voit2[0] + $voit3[0];
echo "Всего: $summa";

     Осталось создать 3 файла voit1.dat, voit2.dat и voit3.dat и записать в них начальное значение, т. е. 0. Вот и все. Голосование готово.

     Я очень надеюсь, что изложил материал достаточно понятно, и Вы сможете разобраться в нем. Если нет, пожалуйста, по всем вопросам в раздел ВОПРОС-ОТВЕТ. В следующем выпуске я напишу, как сделать голование более компактным (запись результатов происходит всего в один файл).

     Постарайтесь усовершенствовать программу и добавить в вывод на экран еще и подсчет процентов (+ - складывать, - вычитать, * - умножить, / - делить), как на моем сайте, и ссылку результаты (просмотр результатов без добавления своего мнения). Ваши варианты присылайте на наш e-mail. Все они будут опубликованы в следующем выпуске рассылки. Удачи!

Статью подготовил Ястребов Сергей.

Копирование информации возможно только с согласием автора с обязательным указыванием ссылки на сайт.

...наверх...
     ВОПРОС-ОТВЕТ:
     Как и во многих других рассылках, здесь есть раздел ВОПРОС-ОТВЕТ, в котором Вы можете излагать свои проблемы, касающиеся веб-дизайна. Для этого нужно заполнить ниже представленную форму или отправить письмо на мой e-mail. Тема question. Этот раздел должен быть крайне полезным для веб-дизайнеров, особенно начинающих, т. к. мы поможем решить ваши проблемы. Помните, таким образом Вы быстрее сможете узнать и понять больше.


имя:
e-mail:
вопрос:

1. Андрей Ерёмин
Здравствуйте! У меня не получается сделать так, как написано в вашей статье. Можете помочь? Может быть я не туда помещаю нужный код? В index.html я вставил код между и . Это правильно? А в name.php - не знаю, куда вставлять. Тоже между и ? Не могли бы вы привести ПОЛНЫЙ код ваших страниц (которые должны получиться)?
Отвечает автор рассылки: файл index.html

<html>
<head><title>Передача данных на PHP</title></head>
<body>
<form action=name.php method=post>
Введите ваше имя: <input type=text name=name value="Вася Пупкин">
<input type=submit value="Отправить">
</form>
</body>
</html>

файл name.php

<html>
<head><title>Передача данных на PHP</title></head>
<body>
<?
echo "Ваше имя: $name.";
?>
</body>
</html>


...наверх...
     Автору:
      Если у Вы - опытный веб-дизайнер или вам есть, что сказать читателям, то присылайте Ваши статьи по адресу about-php@mail.ru. Тема author. Ваши статьи будут опубликованы в близжайших выпусках рассылки (если, конечно, они будут содержать полезную информацию о веб-дизайне). В письме должны быть статья, ее название и контактная информация о авторе (имя и e-mail (например, с которого отправлено письмо) обязательно). Также Вы можете стать ведущими рассылки. Для этого отправьте письмо на этот же e-mail с той же темой, указав контактную информацию и тематику ваших статей.

     Возможно, подписываясь на эту рассылку, Вы уже имели опыт работы с PHP и создали какие-нибудь скрипты. Поэтому, если у Вас есть полезный скрипт для сайта, написанный на PHP, присылайте его мне на e-mail about-php@mail.ru с темой script. Он обязательно появится в этой рассылке и разделе "Скачать" с контактной информацией автора.

...наверх...

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: inet.webbuild.aboutphp
Отписаться

В избранное