Практическая работа № 5. Обработка данных форм

Главное правило в связи HTML-формы и PHP-скрипта - это создание переменной для каждого элемента формы HTML. То есть, если в форме есть одно текстовое поле под названием Text, в PHP-сценарии уже не нужно создавать переменную для текстового поля и каким-то образом ее инициализировать, так как данная переменная $Text будет автоматически создана со значением, равным введенному значению в текстовое поле.

УПРАЖНЕНИЕ 5-1. Передача данных от формы к обработчику методом GET.

1. В папке WWW создайте файл f1.html, содержащий следующий код:

<HTML> <BODY><H1> Проверяем метод GET: </H1><FORM action="f1_get.php" method="get"> Ваше имя: <INPUT type="text" name="userName" maxlength="40"> <INPUT type="hidden" name="hideField" value="используется метод GET"> <INPUT type="submit" value="Проверить"></FORM></BODY> </HTML>

2. Создайте файл с именем f1_get.php и впишите следующий код:

<?php echo ("Здравствуйте, " . $_GET["username"]); echo ("<hr>"); echo ("Значение скрытого поля hideField равно " . $_GET["hideField"]);?>

3. Проверьте, правильно ли работает скрипт, набрав в адресной строке браузера Фамилия.ru/f1.html. Обратите внимание на содержимое адресной строки при передаче запроса обработчику.

УПРАЖНЕНИЕ 5-2. Передача данных от формы к обработчику методом POST.

1. В папке WWW создайте файл с именем f2.html, содержащий следующий код:

<HTML> <BODY><H1> Проверяем метод POST: </H1><FORM action="f1_post.php" method="post"> Ваше имя: <INPUT type="text" name="userName_post" maxlength="40"> <INPUT type="hidden" name="hideField_post" value=" используется метод POST"> <INPUT type="submit" value="Проверить"></FORM></BODY> </HTML>

2. Создайте файл с именем f2_post.php и впишите следующий код:

<?php echo ("Здравствуйте, " . $_POST["userName_post"]); echo ("<hr>"); echo ("Значение скрытого поля hideField_post равно " . $_POST["hideField_post"]); ?>

3. Проверьте, правильно ли работает скрипт, набрав в адресной строке браузера Фамилия.ru/f2.html. Обратите внимание на содержимое адресной строки при передаче запроса обработчику.

УПРАЖНЕНИЕ 5-3. Работа с радиокнопками.

1. Создать HTML-документ, который будет содержать форму с двумя полями для ввода чисел и переключатель, который будет определять, какое действие надо выполнить с числами (сложить или перемножить).



<FORM method="post" action="f3_p.php"> а: <INPUT type="text" name="a" size="3"> + <INPUT type="radio" name="d" value="plus"> или * <INPUT type="radio" name="d" value="umnozh"> b: <INPUT type="text" name="b" size="3"> <P> <INPUT type="submit" value="Вычислить"></FORM>

2. Сохраните файл под именем f3.html и проверьте его работоспособность.

3. Создать php-файл f3_p.php, обрабатывающий данные из формы:

<? if ($_POST["d"]=="plus") { $c=$_POST["a"]+$_POST["b"]; echo ("сумма чисел = $c"); } else { $c=$_POST["a"]*$_POST["b"]; echo ("произведение чисел = $c"); } echo ("<BR> <A href='f3.html'> Вернуться назад </A>");?>

4. Проверить работоспособность формы.

УПРАЖНЕНИЕ 5-4. Работа с «флажком».

1. В форму HTML-документа f3.html перед кнопкой добавить «флажок», позволяющий указать вид выводимого результата вычислений: вывести выражение полностью (например, 3+7=11) или показать только полученный результат.

<FORM method="post" action="f4_p.php"> а: <INPUT type="text" name="a" size="3"> + <INPUT type="radio" name="d" value="plus"> или * <INPUT type="radio" name="d" value="umnozh"> b: <INPUT type="text" name="b" size="3"> <P> <INPUT type="checkbox" name="f"> <P> <INPUT type="submit" value="Вычислить"></FORM>

2. Сохраните файл под именем f4.html и проверьте его работоспособность.

3. Создать php-файл f4_p.php, обрабатывающий данные из формы:

<?if ($_POST["d"]=="plus") { $c=$_POST["a"]+$_POST["b"]; if ($_POST["f"].checked==checked) { echo ($_POST['a']."+".$_POST['b']."=".$c); } else { echo ("Результат = ".$c); } } else { $c=$_POST["a"]*$_POST["b"]; if (isset($_POST["f"])) { echo ("Результат = ".$c); } else { echo ($_POST['a']."*".$_POST['b']." = ".$c); } echo ("<BR> <A href='f4.html'> Вернуться назад </A>");?>

4. Проверить работоспособность формы.

Пояснения:

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

УПРАЖНЕНИЕ 5-5. Работа с выпадающим списком.

1. Создать новый HTML-документ, содержащий форму с двумя текстовыми полями для ввода фамилии и имени, список для выбора формы обращения («господин», «госпожа», «товарищ»), а также кнопку отправки данных обработчику.

Практическая работа № 5. Обработка данных форм - student2.ru

<FORM method="post" action="f5_p.php"> <P> Фамилия: <INPUT type="text" name="f" size="15"> <P> Имя: <INPUT type="text" name="n" size="15"> <P> Форма обращения: <BR> <SELECT NAME="z" SIZE="1"> <OPTION VALUE="1" SELECTED> господин <OPTION VALUE="2"> госпожа <OPTION VALUE="3"> товарищ </SELECT> <P> <INPUT type="submit" value="Отправить"></FORM>

2. Сохраните файл под именем f5.html и проверьте его работоспособность.

3. Создать php-файл f5_p.php по обработке данной страницы:

<?$s3=($_POST["f"]." ".$_POST["n"]); $s4=". Мы рады приветствовать вас на нашем сайте."; switch ($_POST["z"]) { // смотрим, чему равна переменная $z case 1: // 1 — это обращение «господин»… $s1="Уважаемый "; $s2="господин "; break; case 2: // 2 — это обращение «госпожа»… $s1="Уважаемая "; $s2="госпожа "; break; case 3: // 3 — это обращение «товарищ»… $s1="Уважаемый "; $s2="товарищ "; break; } echo ($s1 . $s2 . $s3 . $s4);?>

УПРАЖНЕНИЕ 5-6.

1. Добавить в HTML-документ f5.html многострочную область для ввода дополнительной информации о пользователе:

Практическая работа № 5. Обработка данных форм - student2.ru Практическая работа № 5. Обработка данных форм - student2.ru

2. Сохранить документ под именем f6.html и проверить его работоспособность.

3. В php-файл f5_p.php добавить код для вывода содержимого текстовой области. Сохранить результат под именем f6_p.php и проверить работу обработчика.

Форму и PHP-скрипт можно располагать в одном документе. Для этого для параметра action в теге FORM надо указать: action="<?php print $PHP_SELF ?>"

Однако если просто прописать то, что показано выше, при первом вызове документ будет выдавать ошибку. Чтобы этого не было, надо проверить, определена ли переменная, связанная с вызовом обработчика, используя функцию isset ($имя_переменной).

Пример:

<?php

if (isset($im)) { print $hello; }

?>

. . .

<form action="<?php print $PHP_SELF ?>" method="POST">

<input type="text" name="hello">

<input type="submit" name="im" value="Готово">

</form>

УПРАЖНЕНИЕ 5-7. «Угадай-ка» - скрипт и форма в одном документе

1. В папке WWW создайте новый текстовый файл со следующим кодом:

<HTML><HEAD> <TITLE> Угадай число </TITLE> </HEAD> <BODY><FORM method="post" action="<?php print $PHP_SELF ?>"> Введите число от 1 до 10: <INPUT type="text" name="a" size="3"> <INPUT type="hidden" name="h" value="5">// угадываемое число<P> <INPUT type="submit" name="obr" value="Проверить"></FORM><?if (isset($_POST["obr"])) { if ($_POST["a"]==$_POST["h"]) { echo($_POST["a"]." - УГАДАЛИ!"); } else { if ($_POST["a"]>$_POST["h"]) { echo($_POST["a"]." - МНОГО..."); } else { echo($_POST["a"]." - МАЛО..."); } } }?> </BODY> </HTML>

2. Сохранить документ под именем f7.php и проверить его работоспособность.

Наши рекомендации