13.Пример работы сайта с формулярами и
генерации html-страниц с помощью php.

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

Сайт-формуляр.

В итоге мы должны получить что-то типа этого:

Как видите, здесь предусмотрена проверка на отсутствие введенной информации.
Php-файл будет иметь следующий код:

<html>
<head>
<title>Formular</title>
<style type="text/css">
<!--
.style1 {
font-size: large;
color: #FF0000;
}
.style2 {font-size: xx-large}
-->
</style>
</head>
<body>
<?php
if ($_POST['SENT']==1){
echo '<br>Вы ввели следующую информацию:';
if(!$_POST['firstname'] OR !$_POST['lastname'])
{echo '<br>Поля фамилии или имени\отчества не заполнены!';
unset($_POST['SENT']);}
else
{echo '<br>Ваше имя отчество: '.$_POST['firstname'] .'<br>Ваша фамилия : '.$_POST['lastname'];}
if (!$_POST['email'])
{echo '<br>Поле электронного адреса не заполнено!';
unset($_POST['SENT']);}
else
{echo '<br>Ваш мейл : '.$_POST['email'];}
switch ($_POST['SelectionList'])
{
case "1"; echo "<br><b>Сойдет и так!</b>"; break;
case "2"; echo "<br><b>Ну и молоток!!</b>"; break;
case "3"; echo "<br><b>Рад за тебя.</b>"; break;
case "4"; echo "<br><b>Бывает и такое. Крепись!!</b>"; break;
case "5"; echo "<br><b>Эх, мне бы такое настроение!</b>"; break;
}
}
if(!$_POST['SENT']){
?>

<p class="style1">Введите Ваши Данные</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="SENT" value=1>
Имя и отчество<br><input type="text" name="firstname" size="20" value="<?php echo $_POST['firstname'];?>">
<br>Фамилия <br><input type="text" name="lastname" size="20" value="<?php echo $_POST['lastname'];?>">
<br>e-mail<br><input type="text" name="email" size="30" value="<?php echo $_POST['email'];?>">
<h4>Как вы себя чувствуете?</h4>
<select size="1" name="SelectionList">
<option value="1">нормально</option>
<option value="2">отлична</option>
<option value="3">хорошо</option>
<option value="4">так себе</option>
<option value="5">супер</option>
</select><p>
<input type="submit" name="submit" value="Send">
</form>
<?php } ?>
</body>
</html>

Начнем разбор "полетов" с самого начала.

<html>
<head>
<title>Formular</title>
<style type="text/css">
<!--
.style1 {
font-size: large;
color: #FF0000;
}
.style2 {font-size: xx-large}
-->
</style>
</head>
<body>

Это самый обыкновенный html-код. Здесь мы определяем, что далее идет гипертекстовая разметка, задаем имя странице и вводим несколько css-стилей. К теме этого учебника данный сегмент кода не имеет никакого отношения.
Теперь рассмотрим первую часть php-кода.
<?php
if ($_POST['SENT']==1){
echo '<br>Вы ввели следующую информацию:';
if(!$_POST['firstname'] OR !$_POST['lastname'])
{echo '<br>Поля фамилии или имени\отчества не заполнены!';
unset($_POST['SENT']);}
else
{echo '<br>Ваше имя отчество: '.$_POST['firstname'] .'<br>Ваша фамилия : '.$_POST['lastname'];}
if (!$_POST['email'])
{echo '<br>Поле электронного адреса не заполнено!';
unset($_POST['SENT']);}
else
{echo '<br>Ваш мейл : '.$_POST['email'];}
switch ($_POST['SelectionList'])
{
case "1"; echo "<br><b>Сойдет и так!</b>"; break;
case "2"; echo "<br><b>Ну и молоток!!</b>"; break;
case "3"; echo "<br><b>Рад за тебя.</b>"; break;
case "4"; echo "<br><b>Бывает и такое. Крепись!!</b>"; break;
case "5"; echo "<br><b>Эх, мне бы такое настроение!</b>"; break;
}
}
if(!$_POST['SENT']){
?>

В самом начале идет проверка, просматривается ли эта страница в первый раз. Это необходимо для того, чтобы при первом заходе на страницу не выводился сегмент после IF. В нем мы проверяем было ли задано значение "1" этому полю или нет. Как мы её задаем и где, я расскажу немного позднее.
Как вы помните, мы вводим информацию в некоторые поля (в нашем случае поля Фамилии, Имени и отчества и электронного адреса).

if(!$_POST['firstname'] OR !$_POST['lastname'])

В этом месте мы как раз и проверяем, было ли хоть что-нибудь введено в эти поля. Если не было, то выдается сообщение о такой ошибке, но если информация была введена, то мы её выводим. Аналогично мы поступаем и с информацией из поля "e-mail".

switch ($_POST['SelectionList'])
{
case "1"; echo "<br><b>Сойдет и так!</b>"; break;
case "2"; echo "<br><b>Ну и молоток!!</b>"; break;
case "3"; echo "<br><b>Рад за тебя.</b>"; break;
case "4"; echo "<br><b>Бывает и такое. Крепись!!</b>"; break;
case "5"; echo "<br><b>Эх, мне бы такое настроение!</b>"; break;
}

Здесь мы пользуемся оператором выбора варианта ответа и выводим соответствующий результат в зависимости от выбранного варианта.
И в конце сегмента кода мы проверяем, существует ли вообще переменная SENT. Если нет, то следующий html-код.

<p class="style1">Введите Ваши Данные</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="SENT" value=1>
Имя и отчество<br><input type="text" name="firstname" size="20" value="<?php echo $_POST['firstname'];?>">
<br>Фамилия <br><input type="text" name="lastname" size="20" value="<?php echo $_POST['lastname'];?>">
<br>e-mail<br><input type="text" name="email" size="30" value="<?php echo $_POST['email'];?>">
<h4>Как вы себя чувствуете?</h4>
<select size="1" name="SelectionList">
<option value="1">нормально</option>
<option value="2">отлична</option>
<option value="3">хорошо</option>
<option value="4">так себе</option>
<option value="5">супер</option>
</select><p>
<input type="submit" name="submit" value="Send">
</form>
<?php } ?>
</body>
</html>


Тут стоит особо отметить строку

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

В ней мы создаем форму для формуляра и организуем ссылку на обработываемый в данный момент файл. За это в php отвечает отдельная переменная $_SERVER['PHP_SELF'].

<input type="hidden" name="SENT" value=1>

Этой строкой мы задаем скрытую переменную. Как я уже говорил, её мы используем для обеспечения двух варианттов страницы: страница при первом заходе на неё и страница с уже введенными данными. А далее мы определяем области ввода текста, введенные данные в которые будут передаваться в массив POST для последующей обработки.

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

На этом мой электронный учебник заканчивается. В нём я постарался раскрыть основные аспекты языка php и продемонстрировать его реальные возможности на наглядных примерах. Остается только поблагодарить всех тех людей, чьей литературой я пользовался при создании этого сайта. Список литературы вы сможете найти на самой последней странице этого сайта.

Тесты по разделу.

1. Что происходит в этой строке?

if (!$_POST['email'])

Определяется переменная.
Подключается дополнительный модуль к php-странице.
Проверяется, существует ли такая переменная.
Заносится значение в переменную.
Проверяется, существует ли такой массив.

2. Какой оператор выбора варианта ответа и выполнения соответствующего кода мы использовали в скрипте?


3.Для чего мы использовали скрытую переменную?

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

4.Что происходит в этой строке?

unset($_POST['SENT'])

Определяется переменная.
Удаляется переменная.
Проверяется, существует ли такая переменная.
Заносится значение в переменную.
Проверяется, существует ли такой массив.

5.Какой метод передачи информации мы использовали?

GET
POST
http
php
xhtml

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

Надеюсь, мой электронный учебник хоть немного, но помог вам на этом непростом пути изучении php.Удачи вам в изучении этого прекрасного языка!

 

 
Хостинг от uCoz