Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода ТОБД.doc
Скачиваний:
24
Добавлен:
13.04.2015
Размер:
8.25 Mб
Скачать

Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php

Цель работы: Получение практических навыков по передаче значений переменным в сценариях РНР с использованием формы и с помощью метода GET.

Задание 1: Разработать приложение с использованием метода GET, в котором:

Создается форма ввода (см. рис. 3.5.) помощью программы Lab2.php (см. рис. 3.6.) для введения пользователем данных:

  • Имени;

  • Фамилии;

  • Адреса электронной почты;

  • Текста - комментария.

Введенные данные PHP-сценарий Lab2_result.php получает данные с формы .

  • Отображает извлеченные из формы данные в окне браузера.

  • Сценарий должен сгенерировать отправку данных в другой PHP-файл, который в свою очередь должен отобразить персональное приветствие пользователю.

Имена использоаванных и взаимосвязанных файлов:Lab2.php (описание и создание формы – рис. 3.6.), Lab2_result.php (обработчик событий для Lab2.php), Lab2_GET.php (использование метода Get)

В форму созданную с помощью Lab2.php (описание и создание формы) введите, например следующую информацию (рис. 3.5.)

Рис. 3.5. Форма с обработчиком на кнопке “OK” .

Исходный код Lab2.php (создание формы).

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01

Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Lab2</title>

</head>

<body bgcolor=#CCFFFF>

<form action="Lab2_result.php" method="POST">

<!--Lab2_result.php Обработчик для данной HTML формы. -->

<!--В указании имени method надо указывать ковычки !!! -->

<table>

<tr>

<td> Введите Ваше имя: <br></td><!--имя атрибута на экране-->

<td><input type=text name="FName" size=20></td>

</tr>

<tr>

<td>Last Name</td><!--имя атрибута на экране-->

<td><input type=text name="LName" size=20></td>

</tr>

<tr>

<td>E-mail</td><!--имя атрибута на экране-->

<td><input type=text name="Email" size=40></td>

</tr>

<tr>

<td> Примечание </td><!--имя атрибута на экране-->

<td><textarea name="Comments" rows=5 cols=40></textarea></td>

</tr>

</table>

<input type=submit name="Submit" value="OK"> 

<input type=reset name="Reset" value="Очистить">

<!--Нажатие кнопки name="Submit" с именем value="OK" приведет к вызову обработчика данной формы (к аналогичному действию приведет нажатие Enter на любом из полей). Нажатие кнопки name="Reset" с значением value="Cancel" (Очистить) приведет к уничтожению всех объявленных переменных в форме.

&nbsp - непрерывный пробел

Веб-браузеры обычно игнорируют дополнительные символы пробела, введенные в текст страницы. Для этого используется команда &nbsp. Эта команда создает неделимое пустое пространство между элементами страницы, будь то графика или текст. Следует учитывать тот факт, что использование &nbsp вместо пробела между двумя соседними словами гарантирует, что оба слова не будут разнесены по разным строкам в окне браузера - они будут расположены всегда рядом.

-->

</form>

</body>

</html>

Рис. 3.6. Код создания формы для рис. 3.5.

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

Рис. 3.7. Результат обработки события после нажатия кнопке “OK” на рис. 3.5.

Код программы (Lab2_result.php), который приводит к этому результату приведен ниже (рис. 3.8).

Lab2_result.php (обработчик для кнопки “OK”)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Lab2_обработчик</title>

Информация попадает в обработчик - программа Lab2_result.php

</head>

<body bgcolor=#FFFFFF><!--Цвет фона белый-->

<?PHP

print("<br>В обработчике переменные из HTML кода Lab2.php напрямую не доступны! <br>");

print("Имя переменная FName is: $FName <br>");

print("Указана фамилия is: $LName <br>");

print("e-mail is: $Email <br>");

print("Комментарий: $Comments <br>");

print("Через массив POST переменные наверняка будут доступны<br>");

$FName = $_POST["FName"];

print("Имя FName $FName передано через глобальный POST: $_POST[FName] <br>");

//а как указано ниже - даст ошибку

//print("Имя FName $FName передано через глобальный POST:

//$_POST['FName'] <br>");

print("Указана фамилия is: $_POST[LName] <br>");

print("e-mail is: $_POST[Email] <br>");

print("В примечании указано $_POST[Comments] <br>");

print("Click <a href=Lab2_GET.php?FName=$FName&LName=$_POST[LName]>here</a> здесь, чтобы посмотреть как работает метод GET");

//После знака '?' перечислены переменные, которые должны быть

//доступны в программе Lab2_GET, которая вызывается по ссылке,

//если пользователь кликнет на слове here, то будет вызвана

//программа Lab2_GET.php с указанными переменными

//Слово here может быть заменено на смысловое русское слово

?>

</body>

</html>

Рис. 3.8. Код программы обработки события на кнопке “OK”.

Если выполнить действие

то будет вызвана программа Lab2_GET.php (рис. 3.10.) результат (рис. 3.9) и исходный код, которой приведен ниже.

Рис. 3.9. Результат обработки события по ссылке HERE.

Обратите внимание на содержимое адресной строки при выводе результата.

Код Lab2_GET.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<title>Lab2_GET</title>

</head>

<body>

<?PHP

//реакция при нажатии на ссылку, см. файл Lab2_GET.php слово Here

$FName = $_GET['FName'];

$LName = $_GET['LName'];

print("<center> Hello из Lab2_GET Имя:'$FName' Фамилия: ' $LName '!!!</center>");

//А так будет ошибка print("<center> Hello из Lab2_GET Имя $FName $Lname !!!</center>");

?>

</body>

</html>

Рис. 3.10. Исходный код программы Lab2_GET.php.

В данной лабораторной работе были получены практические навыки по передаче данных в РНР-сценарий с помощью HTML-форм и с помощью метода GET.