Поиск
Как работают формы
Скорее всего, вы уже использовали формы, умеете их создавать и знаете, как они работают. Тем не менее мы освежим в вашей памяти информацию, касающуюся форм HTML.
Краткий обзор элементов форм HTML
Перед тем как разбираться, каким образом работают формы, вы должны вспомнить роль и назначение всех элементов форм.
Исходный код в формате HTML, представленный в этой книге, неполон. Для демонстрации возможностей CGI-программ мы использовали лишь часть стандарта HTML.
Некоторые дескрипторы HTML, такие как <HEAD>, <BODY> или <DOCTYPE>, вообще не встречаются в наших примерах. Все копии экрана не содержат никаких графических элементов. Вы можетесвободно добавить их по собственному усмотрению.
Форма HTML — часть документа HTML, служащая для организации ввода информации пользователем. При загрузке броузером Web-страницы с формой различные дескрипторы HTML создают на странице зоны пользовательского ввода. Пользователь может изменять состояние таких элементов, как флажки, переключатели, списки и текстовые поля. По окончании работы с элементами ввода в Web-броузере данные формы пересылаются CGI-программедля обработки.
В листинге 18.1 приведен код HTML типичной формы.

Дескриптор <FORM> обозначает начало формы в документе HTML. Его атрибут method указывает, какой способ будет использован для передачи данных этой формы серверу — GET или POST. Если он отсутствует, для передачи данных формы CGI-программе используется метод GET. Разница между этими методами будет объяснена позже. Атрибут action определяет URL CGI-программы, получающей данные формы.
Дескриптор <INPUT> предоставляет пользователю область ввода, в данном случае пустое текстовое поле. Этому текстовому полю присвоено имя "name".
Дескриптор <TEXTAREA> отображается в броузере как поле для ввода нескольких строк текста. Его важнейший атрибут — name. Здесь его значение — "description". Каждый элемент формы HTML должен иметь свой атрибут name, не совпадающий с подобными атрибутами остальных элементов формы. Когда данные формы поступают в CGI-программу для обработки, атрибуты name позволяют идентифицировать поля данных.
Элементы переключателя являются исключением из правила, согласно которому каждый элемент формы должен иметь уникальное имя. Переключатели могут объединяться в группы. В группе может быть выделен лишь один переключатель. У каждой группы переключателей должен быть собственный атрибут name.
Последний элемент формы — кнопка Submit. После щелчка пользователя на ней значения формы передаются в CGI-программу для дальнейшей обработки. Мы поговорим об этом в следующем разделе.
В спецификации HTML 4,0 предусмотрены и другие элементы формы, однако мы не будем приводить их полное описание на страницах данной книги. Многие элементы форм содержат различные атрибуты свойств, как, например, rows и cols в элементе TEXTAREA предыдущей формы. Во всех примерах мы будем использовать лишь основные атрибуты элементов.
Что происходит после щелчка на кнопке Submit?
После того как пользователь заполнит в Web-броузере форму, происходит следующая последовательность событий.
- Данные формы группируются Web-броузером в пары имя—значение (рис. 18.2). Например, в приведенной форме поле name получает значение введенного пользователем текста. Поле sex получает значение выделенного переключателя. Эту работу выполняет Web-броузер.

- Устанавливается соединение с узлом, соответствующим указанному URL. Предположительно, это URL CGI-программы (рис. 18.3).

- Имена и значения полей формы передаются в CGI-программу с помощью одного из методов: GET или POST (рис. 18.4). Пока механизм этой передачи не должен вас волновать.

- CGI-программа получает значения, генерирует ответ и посылает его обратно броузеру (рис. 18.5). Этим ответом может быть страница HTML, страница с другой формой, переадресация на другой URL или любой другой возможный вывод CGI-программы.
