Веб-формы как средство обратной связи с пользователем

С точки зрения структурной разметки, веб-форма представляет собой элемент-контейнер, ограниченный тегами <form>...</form>.
У тега <form> имеется обязательный атрибут action, значением которого обычно выступает URL обработчика (например, серверного скрипта), осуществляющего анализ данных формы.
Другим важным, но уже необязательным параметром тега <form> является атрибут method, определяющий, при помощи какого HTTP-метода будет передаваться на сервер информация пользовательского запроса. Возможные значения — get и post (спецификации XHTML требуют использовать нижний регистр, в то время как HTML 4 такого ограничения не налагает; сами же названия одноименных методов принято записывать прописными буквами). По умолчанию используется значение get.
Атрибут enctype тега <form> определяет MIME-тип данных веб-формы.
Значение по умолчанию — application/x-www-form-urlencoded — указывает на то, что содержимое полей формы отправляется обработчику с использованием так называемой кодировки URL, а именно, в следующем формате:
параметр_1=значение_1&параметр_2=значение_2&...&параметр_N=значение_N
Названия параметров — это имена тех или иных элементов интерфейса веб-формы, заданные разработчиком при помощи атрибута name. Значения параметров — это данные, введенные пользователем в соответствующие поля.
При этом все пробелы заменяются знаком «+», а прочие символы (за исключением латинских букв, цифр и ограниченного множества других знаков, разрешенных к передаче в непосредственном виде) кодируются двузначными шестнадцатеричными числами, предваряющимися знаком процента (%). Так, например, слово «веб-технологии», представленное в кодировке URL, будет выглядеть следующим образом: %E2%E5%E1-%F2%E5%F5%ED%EE%EB%EE%E3%E8%E8. Скрипт, выполняющий обработку данных веб-формы, должен прежде всего декодировать переданную пользователем информацию.
При использовании метода GET пользовательские данные являются частью URL запрашиваемого ресурса, например:
http://www.yandex.ru/yandsearch?text=%E2%E5%E1-%F2%E5%F5%ED%EE%EB%EE%E3%E8%E8
Все то, что следует за вопросительным знаком, и есть содержимое полей формы (в данном случае — одного поля с именем text), передаваемое серверу при помощи метода GET.
В случае применения метода POST пользовательские параметры передаются обработчику непосредственно в теле сообщения HTTP-запроса.
Если атрибут method тега <form> имеет значение get, то в качестве значения атрибута enctype не имеет смысла использовать ничего, кроме упомянутого выше application/x-www-form-urlencoded. В противном случае результат обещает быть непредсказуемым — один из атрибутов (какой именно — браузер рассудит по своему собственному разумению) будет попросту проигнорирован.
Если же данные веб-формы отправляются при помощи метода POST, атрибут enctype вполне может принимать и отличные от принятого по умолчанию значения.
Так, например, если веб-форма применяется для отправки обработчику содержимого какого бы то ни было локального файла, значением атрибута enctype должен быть тип multipart/form-data, иначе скрипт получит отнюдь не содержимое файла, а лишь только имя последнего.
Если же предполагается использовать веб-форму в качестве средства для отправки почтовых сообщений (когда значением атрибута action является адрес e mail), атрибут enctype тега <form> должен принимать значение text/plain. Следует, однако, заметить, что пользоваться этим приемом нужно с большой осторожностью — к сожалению, возможны проблемы с отправкой русскоязычных сообщений в корректной кодировке.


© 2008-2018 ОптимизацияВебСайтов.ру


Любое использование текстового и графического контента сайта без активной ссылки на источник не доскается.