Вы создали форму. Теперь необходимо написать сценарий HandleForm.php,
который будет получать и обрабатывать данные, введенные пользователем в эк
ранной форме form.html. Вот здесь и станет очевидна простота и эффектив
ность языка РНР.
Создание сценария HandleForm.php
- Откройте текстовый редактор и создайте новый документ.
- Это стандартный формат PHPстраницы. Мы добавили комментарий
о цели создания сценария. Хотя страница form.html указывает, куда посы
лаются данные (через атрибут ACTION), мы должны сделать комментарий,
указывающий обратное. Создайте новую строку после комментария, но до
закрывающего PHPтэга. - Сохраните сценарий в файле с именем HandleForm.php.
- Загрузите сценарий на сервер (листинг 3.4) и убедитесь, что он сохранен
в одном каталоге со страницей form.html. - Протестируйте сценарий в Webбраузере (рис).
<HTMLxHEADxTITLE>Form Results</TITLEx/HEADxBODY>
—<?php /*Эта страница получает и отрабатывает данные, принятые
от "form.html". */?></BODYx/HTML>.
Наберите следующий текст:
print ("Your first name is $FirstName.<BR>n");
print ("Your last name is $LastName.<BR>n");
print ("Your Email address is $Email.<BR>n");
print ("This is what you had to say:<BR>n $Comments<BR>n");
Листинг 3.4 т Взяв название элемента NAME = “Name” в HTMLформе и доба
вив знак $, вы получаете переменную, которая содержит значение, введенное
пользователем в соответствующем поле формы. Это справедливо для любого
типа ввода кода HTML, будь то TEXT, TEXTAREA или выбор из меню SELECT, и явля
ется одной из причин того, почему язык РНР так хорош для обработки HTML
форм. Для сравнения: CGIсценарии требуют синтаксического анализа кода.
1. <HTML>
2. <HEAD>
3. <TITLE>Form Results</TITLEx/HEAD>
4. <BODY>
5. <?php
6. /* Эта страница получает и отрабатывает данные, принятые
от "form.html".*/
7. print ("Your first паве ie $FirstHame.<BR>n");
8. print ("Your last name is $LaetName.<BR>n");
9. print ("Your Einail address is $Email.<BR>n") ;
10. print ("This is what you had to say:<BR>n $CommentB<BR>n");
11. ?>
12. </BODY>
13. </HTML>
Смысл этого .упражнения в том, чтобы показать, как легко можно передать
данные из HTMLформы в РНРстраницу. PHPсценарий сохранит данные
в соответствующих переменных, поэтому переменная $FirstName получит зна
чение, введенное пользователем в поле First Name (вы берете имя поля в HTML
форме, добавляете знак $ и получаете переменную с соответствующим значе
нием). Передача происходит автоматически, и в отличие от GCI в РНР нет
необходимости в синтаксическом разборе входного потока.
Еще одно преимущество использования языка РНР для обработки HTMLформ
состоит в том, что при передаче автоматически происходит экранирование всех
специальных символов.
Например, если вы введете комментарий I thought
"form.html" was too simple!, переменная $Comments будет равна I thought
" form. html " was too simple!, и комментарий можно распечатать без ослож
Если вы хотите передать в сценарий предварительно заданное значение, ис
пользуйте тип ввода HIDDEN в вашей HTMLформе.
Например, строка <INPUT
ТУРЕ = HIDDEN NAME = "ThisPage" VALUE = " form.html ">, вставленная
между тэгами FORM, создаст в сценарии обработки переменную $ThisPage со
значением " form.html". Таким же образом, дав команду print ("<INPUT
TYPE=HIDDENNAME= "FirstNameX " VALUE= " $FirstName " > " ) ; , вы можете
«продлить жизнь» переменной $FirstName, передавая ее значение в другие
формы.
Хотя в РНР для вывода формы на экран и обработки данных из нее можно исполь
зовать один файл, мы отложим этот прием, пока не рассмотрим все языковые кон
струкции РНР. Пока же будем пользоваться отдельным файлом, который назван
HandleForm.php.