Получение данных из форм. HTML-формы. Методы отправки данных на сервер с помощью формы

Применение методов GET и POST в PHP трудно переоценить, поскольку эти методы встречаются практически на каждом сайте. Прежде чем изучать ниже описанный материал, советую ознакомится с html тегом

. Рассмотрим каждый из этих методов в подробности.

Метод GET

Метод GET использует для передачи данных строку URL. Возможно, Вы обращали внимание на длинные и непонятные URLы. Например: function.php?login=Alex&email=dezyakin . В данном случае данные обрабатываются в function.php. После знака вопроса "? " идет перечисление передаваемых параметров (параметр разделяются знаком "&") со значениями: параметру login присвоено значение Alex, а переменной email значение dezyakin. Данные будут хранится в суперглобальном массиве $_GET . Приведем пример использования метода GET представлен ниже:

Login : E-mail : С помощью суперглобального массива $_GET выводим принятые значения: */ echo "
login = ". $_GET["login"] ; echo "
email = ". $_GET["email"] ; ?>

Обратите внимание на то, как мы считываем значения из суперглобального массива $_GET: $_GET["имя_переменной"] . В нашем примере имена переменных были объявлены в форме (name=login и name=email).

Совет :
Прежде чем обрабатывать полученные значения советую проверять их на существование через функции isset(имя_переменной) или empty(имя_переменной) - эти функции были рассмотрены в предыдущем уроке 2: переменные в PHP . Например:

проверка на существование с помощью isset: if isset ($_GET["login"] ) { операторы для обработки login ... } //или же проверить на существование с помощью empty: if empty ($_GET["email"] ) { операторы для обработки email ... } ?>

В форме можно указать имя файла, который будет обрабатывать передаваемые значения. Делается это с помощью атрибута формы action , которому можно присвоить адрес этого файла. По умолчанию этот файл присвоен текущему файлу (т.е. обрабатывается в файле, где и расположена форма). Приведем пример, в котором данные из формы передаются на обработку в файл srcipt.php :

Login : E-mail :

В файле script.php должен содержатся какой-то обработчик информации, иначе информация будет передана в пустую.

Метод GET обладает множеством недостатков:

  • Пользователь видит значения передаваемых параметров;
  • Пользователь может легко подделать передаваемые параметры;
  • Неудобная передача бинарной информации (приходится кодировать в текстовый формат);
  • Объем передаваемых данных ограничен - 8 Кбайт;

Из-за выше перечисленных недостатков метод GET применяется только в тех случаях, когда нужно передать небольшой объем данных, а также эти данные никак не засекречены.

Метод POST

Метод POST отличается от GET тем, что данные передаются в закрытой форме. Существует суперглобальный массив $_POST , из которого можно считывать данные следующим образом: $_POST["имя_переменной"] . Например:

Login : "> E-mail : ">
С помощью суперглобального массива $_POST выводим принятые значения: */ echo "
login = ". $_POST["login"] ; echo "
email = ". $_POST["email"] ; ?>

Результат выполнения выше описанного кода представлен на рисунке ниже:

Как видите URL не имеет никакой приписки, но тем не менее данные были получены и выведены.

Примечание :
1) Объем передаваемых значений методом POST по умолчанию ограничен и равен 8 Мбайт. Чтобы увеличить это значение нужно изменить директиву post_max_size в php.ini.

2) В ранних версиях PHP вместо коротких названий суперглобальных массивов $_GET и $_POST использовались более длинные имена: $HTTP_GET_VARS и $HTTP_POST_VARS . По умолчанию они выключены в php 5, но Вы можете их включить в конфигурационном файле php.ini с помощью параметра register_long_arrays . В php 6 версии эти длинные названия будут недоступны.

3) Перед обработкой переменных из $_POST , советую проверять переменные на их наличие, также как это делалось с методом GET .

Итак, Друзья. Это последнее видео из раздела по изучению HTML-форм.

В прошлом видео уроке мы разобрались в различиях между методами GET и POST отправки данных. И создали файл, который предназначен для обработки данных из HTML-формы. И чтобы завершить окончательно изучение форм нам осталось научиться собирать и отправлять данные из формы.

В этом видео мы поговорим об обработчике данных формы, который как раз нужен для сбора данных из полей формы и последующей их обработки. В этом видео мы научимся не только собирать данные из полей, но и отправлять их на E-mail . Не будет никаких особенностей обработки данных и тому подобных вещей. Мы просто воспользуемся самым простым вариантом сбора и отправки данных. Отправлять данные будем на E-mail, который укажем в обработчике. Здесь же стоит напомнить, что обработчиком является файл в формате php . А так как мы изучаем HTML , о PHP мы поговорим очень кратко. И только рассмотрим конкретный пример отправки данных на E-mail.

Обработчик формы.

Как я упомянул выше, это файл в формате PHP , который с помощью различных функций, переменных и глобальных массивов сможет собрать данные из формы и отправить на наш почтовый ящик. Рассматривать будем самый простой и примитивный вариант обработчика формы. Он не будет осуществлять каких-либо проверок полей и тому подобных вещей. Единственное, что мы будем проверять в этом видео уроке, отправлено ли письмо с данными формы к нам на почту или что-то пошло не так.

Отправка данных на E-mail.

Обработчик данных представляет собой довольно не большой PHP-код, который примет все данные из полей формы, обработает их и отправит к нам на почту.

Для отправки данных формы на почту мы будем использовать функцию mail . С помощью функции мы можем указать E-mail, на который должны прийти все данные, тему письма и собственно само сообщение, которое будет состоять из собранных данных из формы.

Если говорить простым языком. То в этом видео уроке. Мы рассмотрим, как создать форму обратной связи на сайте , и сделать так чтобы она работала. И когда посетитель захочет нам что-то написать, мы будем получать его сообщение на электронный адрес. Все довольно просто на самом деле. Достаточно пройти раздел по изучению HTML-форм и посмотреть это видео, чтобы разобраться, как все это сделать на своем сайте.

Видео урок: Обработчик формы. Отправка данных на E-mail.

HTML-справочник и другие материалы можно и нужно скачать !

В следующем видео уроке мы начнем новый раздел, посвященный созданию таблиц в HTML. И узнаем,

Обновлено 12.12.2015 г.

Несмотря на то, что тема отправки почтовых сообщений прямо со страниц сайта уже достаточно избита, но судя по письмам, которые я получаю от посетителей своего сайта, делаю вывод, что у многих еще имеются пробелы знаний в этих вопросах.

Итак, в этом уроке мы научимся делать форму отправки почтовых сообщений со страниц сайта с проверкой на правильность ввода данных . Т.е. если какое то поле формы будет не заполнено, то скрипт выдаст ошибку и сообщит об этом посетителю. Пример работы такой формы Вы можете увидеть . Если Вы заполните эту форму и нажмете кнопку: Отправить сообщение , то я получу Ваше послание.

Преимущество такой отправки сообщений очевидны:

1. Вам не нужно "светить в Интернете" свой почтовый адрес, а значит он не попадет к спамерам.

2. Если посетитель хочет задать Вам вопрос или что-то спросить ему не нужно, копировать адрес электронной почты, открывать свой почтовый клиент, писать сообщение и т.д. Посетитель быстро заполнит в форме нужные данные и отправит Вам сообщение.

3. При такой организации обратной связи с посетителями, вероятность доставки Вам сообщения почти 100%, особенно если почтовый адрес привязан к вашему домену. Ведь из длинной почтовой цепочки исключаются промежуточные узлы. А значит надежность доставки почты резко повышается.

Как создать форму отправки сообщений?

Как правило подобные скрипты состоят из двух частей и код расположен в двух разных файлах:

  • Первый файл - это сама форма, в которой заполняются данных сообщения.
  • Второй файл - это файл-обработчик, который получает данные из формы (первого файла) и отправляет по указанному в скрипте эл.адресу. Но работают эти части скрипта всегда обязательно в паре.

Первую часть скрипта мы выносим в отдельный файл и назовем его: mail.php . В этом файле будет располагаться форма ввода данных. Имя файла mail.php я взял условно, Вы можете назвать этот файл как угодно. Это файл может иметь и другое расширение, например .html .

Для обращения посетителей сайта к этому файлу, обычно делают простую ссылку: Написать автору сайта , Отправить сообщение или что нибудь в этом роде. Когда посетитель кликает по такой ссылке он попадает на отделную страницу с формой в которую нужно ввести данные (информацию) для отправки сообщения.

Итак, создаете новый файл, присвойте ему имя: mail.php или mail.html и вставляете в него код Листинга 1 .

Листинг 1









Для отправки сообщения автору сайта используйте следующую форму:



Ваше имя:


Ваш e-mail:


Ваше сообщение:




Это самая простая форма, состоящая всего из 3-х полей для ввода данных. Эти поля я назвал: Ваше имя , Ваш e-mail , Ваше сообщение . При необходимости количество полей можно увеличить.

Первых два поля: Ваше имя , Ваш e-mail , описываются тегами:

Ваше имя:

но каждому из них присваивается свое имя, которое называетмя идентификатор : name="name" и name="email" соотвественно.

Третье поле для ввода сообщения описано тегами:

Ваше сообщение:

Данное поле имеет идентификатор: name="mess" .

И естественно имеется две кнопки: Отправить сообщение и Очистить форму .

Данным (информации), которые посетитель заносит в форму, присваиваются соотвествующие идентификаторы: name , email и mess , запоминайте - это важно!

Для удобства оформления вся форма помещена в обычную таблицу, внешний вид, которой можно оформить с помощью , у меня это класс: class="td_border" , его я здесь не привожу, при необходимости допишите сами, на свой вкус.

Файл обработчик.

Вторая часть скрипта состоит из файла обработчика: mail2.php , в который методом POST передаются все данные с соответствующими идентификаторами: name , email и mess . Здесь эти данные помещаются в переменные: $name , $email , $mess .

Создаем файл mail2.php и прописываем в него код Листинга 2 :

Листинг 2

$name = $_POST["name"];
$email = $_POST["email"];
$mess = $_POST["mess"];

$REMOTE_ADDR = $_POST["REMOTE_ADDR"];

if (isset ($name))
{
$name = substr($name,0,20); //Не может быть более 20 символов
if (empty($name))
{
echo "

Не указано имя!!!

";
echo "";
exit;
}
}
else
{
$name = "не указано";
}

if (isset ($email))
{
$email = substr($email,0,20); //Не может быть более 20 символов
if (empty($email))
{
echo "

Не указан e-mail !!!

";
echo "Вернуться и правильно заполнить форму.";
exit;
}
}
else
{
$email = "не указано";
}

if (isset ($mess))
{
$mess = substr($mess,0,1000); //Не может быть более 1000 символов
if (empty($mess))
{
echo "

Сообщение не написано!!!

";
echo "Вернуться и правильно заполнить форму.";
exit;
}
}
else
{
$mess = "не указано";
}

$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Внимание! Произошла ошибка! Вы не заполнили поля сообщения!";
exit;
}

$to = "admin@сайт ";
$subject = "Сообщение с сайта сайт ";
$message = "Имя пославшего письмо: $name .\nЭлектронный адрес: $email\nСообщение: $mess .\nIP-адрес: $_SERVER";
mail ($to,$subject,$message,"Content-type:text/plain; charset = windows-1251 ") or print "Не могу отправить письмо!!!";
echo "

Спасибо за отправку Вашего сообщения.

Для меня это очень важно!

В ближайшее время Вы обязательно получите ответ.";
exit;
?>

В этом файле происходит проверка введенных посетителем сайта в форму данных, и последующая отправка сообщения по указанному адресу электронной почты.

При незаполненных полях или заполненных некорректно, скрипт вернет посетителю сообщение с указанием конкретной причины.

Обращаю Ваше внимание, что файл: mail2.php обязательно должен иметь расширение .php , т.к. отправка сообщения осуществляется с помощью функции mail PHP .

И естественно ваш Хостинг, должен поддерживать работу PHP. Это в основном касается бесплатных хостингов, хотя в последнее время даже на бесплатных Хостингах практически везде установлен PHP.

В коде Листинга 2 все просто, исправьте все значения, выделенные красным под свои требования, а именно:

  • пропишите свой адрес электронной почты , на который будут отправляться сообщения (переменная $to );
  • исправьте тему сообщения (переменная $subject );
  • обратите внимание на кодировку (charset = windows-1251 ). Кодировку пропишите ту, которая используется на вашем сайте. В русскоязычном интернете кодировка может быть: "utf-8" или "windows-1251" . Если ошибетесь с кодировкой текст в письме будет отображаться неправильно (кракозябрами).

Вот собственно говоря и все, теперь осталось закачать файлы: mail.php и mail2.php и на вашем сайте появится удобная форма для отправки сообщений.



Комментарии к этой статье (уроку):

Спасибо за урок. Вот правду говорят, что все приходит вовремя. Сегодня собиралась искать в инете как сделать форму контакта для сайта, причем независимую. Я так понимаю, что эта подойдет.

Хороший урок! Спасибо!

Спасибо Андрей, хороший урок.

Благодарствую, думаю пригодится

Вам пишет Савин Дмитрий Александрович (SAVIN DMITRY ALEXANDROVICH) ,хочу узнать все по подробнее о формах в CSS , я мало обэтом осведомлен: поподробнее о свойстве action , как я знаю action это ссылка на документ, куда отсылается запрос данных либо сами данные с формы, или что-то в этом роде.method="post" обработка данных в наибольших размерах нежели чем get и т. д.Пожалуйста подробнее о формах у меня в них почти просак.

Здравствуйте Андрей! С уважением к Вам Ахмад. Вот я тоже хочу на сайте создать "Добавить Ваш комментарий" чтобы посетители могли оставить свои Отзывы.Какой код писать мне? Спасибо Вам мне понравилось.Ахмад

Красавчик! очень полезная инфа!

Полезно, то полезно, но н запускаетсяю. После заполнения формы выдается листинг mail2.php

Полезно, то полезно, но не запускается. После заполнения формы выдается листинг mail2.php

Все хорошо работает, только кнопочки не получаются объемными как у автора. Может кто-то подскажет, как сделать объемные кнопочки? Автору спасибо!

а у меня не работает. точнее работает на половину. письмо отправляет, но пустое. данные из майл1 не переходят в майл2

На маил не приходит.В чем подвох? Я не пойму как он без логина и пароля чегонибуть отправит. Это что сервер почтовый типа? Простая форма и все

Спасибо за форму! Работает! У кого не работает - внимательно выполняйте каждый шаг. У меня тоже не сразу всё получилось. Андрей, ещё раз спасибо!

Помогите плиз, форму вставила всё вроде бы Ок, но на почту которую я указала сообщение не доходит, хотя и пишется сообщение отправлено...

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

Андрей. Я понимаю, что обработчик вызывается. Я пока не особо в php разбираюсь. Но мне вот чего бы хотелось достич: страница с почтовой формой одна,т.е. после нажатия "Отправить сообщение" новое окно не открывается, а изменяется текущая страница. Т.е я так понимаю она динамическая. Самой пока не додуматься как сделать такое, поэтому спрашиваю совета.

Андрей, подскажите пожалуйста, форма замечательно работает в хроме, а вот с эксплорером проблема. Не доставляются письма и не выводятся сообщения об ошибках или отправке. В чем тут дело? Заранее спасибо

Классный урок! Спасибо!

Спасибо. Всё отлично работает)

в коде нет закрывающих тегов /p. Почему?

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in E:Roomsu362571transport-online.netwwwmail.php on line 66 Не могу отправить письмо!!! Во - как получается Как быть??

не могу разобраться с кодировкой. Если прописывать windows-1251 - текст скрипта в сообщении нормальный, сам текст сообщения на почту приходит крокозяброй. а если ставить utf-8 - текст скрипта в сообщении на почте - знаки вопроса, а текст сообщения из формы - нормальный. как сделать, что б и то и то нормальным было?

у меня неработает, но сайт еще не на хостинге, когда помещу-будет?

Все работает, спасибо за скрипт! Поскажите пожалуйста как сделать что бы при нажатии кнопки отправить не открывалась новая страница с обработчиком. Что бы сайт оставался на той странице где и был до нажатии кнопки отправить?

а как сделать поле ввода майл выше?

Если необходимо отправить письма на несколько адресов, просто через запятую дописываете нужные адреса вот так: $to = "admin@сайт, [email protected], [email protected]";

А как сделать чтобы после отправки сообщения была переадресация на другую страницу?

есть $to = "admin@сайт"; вопрос: если необходимиа отправка на 2-а адреса! один из адресов в виде $to = "$email"; другими словами функционал "посоветовать другу" с дублированием послания на мной заданную почту. Спасибо.

У меня почему-то форма обратной связи не работает, причём, никакая не работает. Делает вид, что сообщение отправлено, но на почту оно не приходит.

Здравствйте! Обьясните пожалуйста, почему не работает на хостинге, пишет: "Не могу отправить письмо". А на lockalhost на Денвере работает нормально. В чём проблема?...

почему у меня не одна формнеа не пашет пишет

Большое спасибо. Очень все просто и доступно. Я использовал Ваш пример на сайте gosdogovor.ru. Только немного подточил дизайн под себя и состав полей: http://www.gosdogovor.ru/easuzcon.html. Еще раз спасибо.

Ребят, если вы пытаетесь отправить сообщение с вашего локального сервера, тобишь с сайта еще не размещенном в инете, - у вас ничего не получится. Разместите на каком-то хостинге, и будет вам счастье)

Андрей, а как сделать так стобы при нажатии на кнопку отправлялось сообщение с определенным текстом на определенный адрес? Помогите пожалуйста: [email protected]

/php/php5ru.png HTTP/1.0

: www.php5.ru

По экрану пробежит то, что бы вы увидели, если б просмотрели этот png -файл в текстовом редакторе.

HTML-формы. Методы отправки данных на сервер с помощью формы

Одно из наиболее распространенных приложений любого языка создания серверных сценариев - обработка HTML - форм. Web-программирование в большей части представляет собой обработку различных данных, введенных пользователем.

РНР облегчает задачу обработки и разбора форм, поступивших из браузера, так как в язык на самом нижнем уровне встроены все необходимые возможности. Поэтому программисту не приходится даже и задумываться над особенностями протокола HTTP и размышлять, как же происходит отправка и прием

С HTML -формами Вы уже встречались при изучении языка разметки HTML .

Рассмотрим пример посылки сообщения из формы по электронной почте.

Листинг e_mail.html. Посылка сообщения из формы по e-mail

Посылка формы по е-mail

Нажмите “Cброс” и заполните заказ.


Если обработать этот HTML-код браузером, то отобразится web -страница, которую можно увидеть на экране монитора:

Пользователь нажимает кнопку «Сброс» , и поля принимают значения, установленные по умолчанию. Форма заполняется пользователем, и по нажатию кнопки «Послать заказ» отправляется по адресу Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script . Обычно браузер не сам отсылает форму, а поручает эту работу почтовой программе, установленной по умолчанию в операционной системе компьютера (например, Outlook). Письмо посылается в виде:

subjct: Форма отправлена из Microsoft Internet Explorer

name = Прохоров Виктор Сергеевич

value= Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script

obj = «Методические указания»

Письмо составляется из пар имя=значение , которые выбираются по порядку из полей формы.

Рассмотрим подробнее следующий пример.

Листинг form_1.html

Введите Ваше имя:

Сохранив этот код в HTML-файле form_1.html и просмотрев его с помощью браузера, можно увидеть HTML-форму:

Форма реализована тегом-контейнером . Тег своими атрибутами указывает:

Адрес сценария, которому будет послана форма;

Способ пересылки и характеристику данных, содержащихся в форме. Начальный и конечный теги задают границы формы. Их указание является обязательным.

Атрибуты тега-контейнера
(
все необязательные):

? action --атрибут, в качестве значения которого указывают URL -адрес (полный или относительный) запрашиваемой CGI -программы. Эта программа будет обрабатывать данные, содержащиеся в форме. Допустимо использовать запись MAILTO:URL. В этом случае форма будет послана по электронной почте. Если атрибут action не указать, то содержимое формы будет отправлено на URL- адрес, с которого загружена данная web-страница, то есть "саму на себя". Это удобное сокращение, но по стандарту HTML атрибут action обязателен.

? method -- определяет метод HTTP , используемый для пересылки данных формы от браузера к серверу. Атрибут method может принимать два значения: get или post:

¦ get - отправка данных формы в адресной строке. Вы могли заметить на различных сайтах присутствие в конце URL символа "?" и следующих за ним данных в формате параметр=значение. Здесь "параметр" соответствует значению атрибута name элементов формы (см. ниже про тэг ), а "значение" - содержимому атрибута value (в нем, например, содержится ввод пользователя в текстовое поле того же тэга ).

Для примера - попробуйте поискать что-нибудь в Яндексе и обратите внимание на адресную строку браузера. Это и есть способ get.

¦ post - данные формы отправляются в теле запроса. Если не совсем понятно (или совсем непонятно), что это такое - не беспокойтесь, скоро мы к этому вопросу вернемся.

Если атрибут method не указан - подразумевается "get" .

? enctype -- необязательный атрибут. Указывает тип содержимого формы, используемый для определения формата кодирования при ее пересылке. В HTML определены два возможных значения для атрибута enctype :

¦ APPLICATION/X-WWW-FORM-URLENCODED (используется по умолчанию).

¦ MULTIPART/FORM-DATA.

Тег позволяет создавать внутри формы поля ввода строки текста, имени файла, пароля и др. У нет конечного тега. Атрибуты и особенности использования зависят от способа его использования.

Тэг - задает элемент формы, определяемый атрибутом type :

¦ Значение "text" задает однострочное текстовое поле ввода.

¦ Значение "submit" задает кнопку, при нажатии которой происходит отправка формы на сервер.

Возможны и другие значения (да и - не единственный тэг, задающий элемент формы), но их мы рассмотрим в следующих главах.

Итак, что же происходит, когда нажимают кнопку "OK"?

1. Браузер просматривает входящие в форму элементы и формирует из их атрибутов name и value данные формы. Допустим, введено имя Vasya . В этом случае данные формы: name=Vasya&okbutton=OK.

2. Браузер устанавливает соединение с сервером, отправляет на сервер запрос документа, указанного в атрибуте action тэга , используя метод отправки данных, указанный в атрибуте method (в данном случае - GET ), передавая в запросе данные формы.

3. Сервер анализирует полученный запрос, формирует ответ, отправляет его браузеру и закрывает соединение.

4. Браузер отображает полученный от сервера документ.

Отправка того же запроса вручную (с помошью telnet ) выглядит следующим образом (предположим, что доменное имя сайта - www.example.com ).

Сама форма обычно предназначена для получения от пользователя информации для дальнейшей пересылки её на сервер, где данные формы принимает программа-обработчик. Такая программа может быть написана на любом серверном языке программирования вроде PHP, Perl и др. Адрес программы указывается в атрибуте action тега , как показано в примере 1.

Пример 1. Отправка данных формы

HTML5 IE Cr Op Sa Fx

Данные формы

В этом примере данные формы, обозначенные атрибутом name (login и password ), будут переданы в файл по адресу /example/handler.php. Если атрибут action не указывать, то передача происходит на адрес текущей страницы.

Передача на сервер происходит двумя разными методами: GET и POST, для задания метода в теге
используется атрибут method , а его значениями выступают ключевые слова get и post . Если атрибут method не задан, то по умолчанию данные отправляются на сервер методом GET. В табл. 1 показаны различия между этими методами.

Какой метод используется легко определить по адресной строке браузера. Если в ней появился вопросительный знак и адрес стал похож на этот, то это точно GET.

http://www.google.ru/search?q=%D1%81%D0%B8%D1%81%D1%8C%D0%BA%D0%B8&ie=utf-8

Уникальное сочетание параметров в адресной строке однозначно идентифицирует страницу, так что страницы с адресами?q=node/add и?q=node считаются разными. Эту особенность используют системы управления контентом (CMS, Content management system) для создания множества страниц сайта. В реальности же используется один файл, который получает запрос GET и согласно ему формирует содержимое документа.

Ниже перечислены типовые области применения этих методов на сайтах.

GET

Передача небольших текстовых данных на сервер; поиск по сайту.

Поисковые системы, формы поиска по сайту всегда отправляются методом GET, это позволяет делиться результатами поиска с друзьями, слать ссылку по почте или выкладывать её на форуме.

POST

Пересылка файлов (фотографий, архивов, программ и др.); отправка комментариев; добавление и редактирование сообщений на форуме, блоге.

Работа с формой по умолчанию происходит в текущей вкладке браузера, при этом допустимо при отправке формы изменить этот параметр и открывать обработчик формы в новой вкладке или во фрейме. Такое поведение задаётся через «имя контекста», которое выступает значением атрибута target тега . Популярные значения это _blank для открытия формы в новом окне или вкладке, и имя фрейма, которое задаётся атрибутом name тега

В данном примере при нажатии на кнопку «Отправить» результат отправки формы открывается во фрейме с именем area .

Элементы формы традиционно располагаются внутри тега
, тем самым определяя те данные, которые будут передаваться на сервер. В то же время в HTML5 есть возможность отделить форму от её элементов. Это сделано для удобства и универсальности, так, сложный макет может содержать несколько форм, которые не должны пересекаться меж собой или к примеру, некоторые элементы выводятся с помощью скриптов в одном месте страницы, а сама форма находится в другом. Связь между формой и её элементами происходит в таком случае через идентификатор формы, а к элементам следует добавить атрибут form со значением, равным этому идентификатору (пример 3).

Пример 3. Связывание формы с полями

HTML5 IE Cr Op Sa Fx

Форма

В этом примере тег
однозначно отождествляется через идентификатор auth , а к полям, которые следует отправить с помощью формы, добавляется form="auth" . При этом поведение элементов не меняется, при нажатии на кнопку логин и пароль пересылаются на обработчик handler.php.

Хотя параметры передачи формы традиционно указываются в теге , их можно перенести и в кнопки отправки формы (

Ваше имя: Ваш адрес: Прислать: