Формы превращают WWW в интерактивную среду. Они реализуют простейший способ связи пользователя с сервером. Формы- один из инструментов, который позволяет разработчику организовать взаимодействие с пользователями программ, работающих в сети. Данные, введенные пользователем в форму, обрабатываются специализированными приложениями (CGI), работающими на сервере. Документы, содержащие формы, отличаются от обычных документов наличием различных элементов управления: полей ввода текста, флажков, кнопок и пр. C помощью форм, разработчик задает вопросы, создавая форму, а пользователь отвечает на них заполняя её. Содержимое формы либо передаётся сценарию CGI, либо по электронной почте посылается получателю. Сам процесс создания формы состоит из двух этапов. Первый заключается в создании самой формы, а второй заключает в себе создание на сервере сценария CGI.
Сервер в дальнейшем обрабатывает информацию, полученную через форму и, если необходимо, возвращает пользователю ответы.
Методы отправки данных форм:
Get – используется для отправки небольших объемов данных, для которых достаточно набора символов кодировки ASCII. При этом данные формы присоединяются к строке URL, заданной в action формы. Для отделения данных от URL используется символ «?».
Post – позволяет передавать CGI-приложению практически любые данные. Браузер отправляет приложению не строку URL с присоединенными данными, а по специальным правилам упаковывает данные формы и только после этого отправляет их CGI-приложению.
Создание форм
Для вставки формы в HTML-документ используется парный тег Form. Между открывающим и закрывающим тегом помещаются описания элементов управления формы, а также текст для пояснения, какие данные и какой элемент управления надо вводить. Атрибуты элемента Form:
- Actionобязательный для каждой формы параметр, URL-программы-обработчика данных формы;
- Method задает способ отправки данных, введенных в форму, может принимать значения get(принимается по умолчанию) или post. Для того, чтобы с использованием метода post пересылать бинарные или текстовые данные, для которых не достаточно ASCII, нужно указать значение атрибута enctype равным multipart/form-data;
- Enctypeзадает тип данных формы, если используется метод отправки post ; по-умолчанию имеет значение application/x-www-form-urlencoded; при необходимости передачи файлов используется значение multipart/form-data;
- Accept-charset применяется при передаче файлов, позволяет, какие кодировки используются для каждого из файлов (список строковых значений – названий кодировак), по-умолчанию устанавливается значение UNKNOWN (приложение на сервере должно само определять кодировки);
- Acceptописывает типы файлов (MIME-типы), передаваемые серверу; если этот параметр не используется, то серверное приложение должно уметь само определять типы передаваемых файлов.
Определение элементов управления формы — тег <INPUT>
Данный тег используют для определения области внутри формы, куда вводятся данные. Он формирует поле для ввода информации пользователем. Это может быть текстовое поле, опция, изображение или кнопка.
Атрибуты тега:
Type – принимает строку, задающую тип элемента управления ( по умолчанию используется text и создается поле ввода текста)
Name – задает имя элементу управления (строка, которая помимо идентификации элемента управления добавляется в данные, отсылаемые серверу)
Value – начальное значение для полей ввода текста и полей для указания имен файлов, названий кнопок. Необязателен для всех элементов, кроме флажков и переключателей.
Checked – булев атрибут. Если он установлен, то флажок и переключатель считается установленным.
Disabled – булев атрибут, установка которого не позволяет пользователю работать с элементом управления.
Readonly – булев атрибут, позволяет запретить изменение состояния элемента управления (работает только для текстовых полей и поля выбора файла).