Создание формы в HTML. HTML Формы Беспредельный form html
В процессе навигации по сайтам пользователь, в основном, только щёлкает по ссылкам
чтобы перемещаться по веб-страницам.
Но понятно, что пользователю иногда требуется обеспечить собственные поля ввода
. Эти виды взаимодействия включают в себя:
регистрацию и вход на сайтах;
ввод личной информации (имя, адрес, данные кредитной карты и др.);
фильтрацию контента (с помощью выпадающих списков, флажков и др.);
выполнение поиска;
загрузку файлов.
Чтобы приспособиться к этим потребностям, HTML предлагает интерактивные элементы управления
формы:
текстовые поля (для одной или нескольких строк);
переключатели;
флажки;
выпадающие списки;
виджеты для загрузки;
кнопки отправки.
Эти элементы управления задействуют разные теги
HTML, но большинство из них использует тег
. Поскольку это самозакрывающий элемент, тип поля определяется его атрибутом type
:
Элемент
задают начало и конец формы. Начинающий форму тег
содержит два атрибута: action
и method
. Атрибут action содержит адрес URL сценария, который должен быть вызван для обработки сценария. Атрибут method
указывает браузеру, какой вид HTTP запроса необходимо использовать для отправки формы; возможны значения POST
и GET
.
Замечание
Главное отличие методов POST и GET заключается в способе передачи информации. В методе GET параметры передаются через адресную строку, т.е. по сути в HTTP-заголовке запроса, в то время как в методе POST параметры передаются через тело HTTP-запроса и никак не отражаются на виде адресной строки.
$text
=
nl2br
($_POST
[
"mytext"
]);
?>
Задача:
Пусть необходимо создать выпадающий список с годами с 2000 по 2050. Решение:
Необходимо создать HTML форму c элементом SELECT и PHP – сценарий для обработки формы.
Обсуждение:
Для начала создадим два файла: form.html
и action.php
. В файле form.html
будет содержаться html-форма с выпадающим списком. Причем значения в списке можно указать двумя способами:
I. Ввод данных вручную:
II. Ввод данных через цикл:
Как видно, второй пример с циклом, более компактный. Думаю, не стоит приводить скрипт обработчика данной формы, потому что он обрабатывается точно так же как текстовое поле, т.е. значения списка можно извлечь из суперглобального массива $_POST
.
Описание:
Создадим HTML-форму для отправки файла на сервер.
В данной html-форме присутствует элемент browse
, который открывает диалоговое окно для выбора файла для загрузки на сервер. При нажатии на кнопку "Передать файл"
, файл передается сценарию-обработчику.
Затем необходимо написать сценарий обработчик action.php
. Перед написание обработчика необходимо определиться в какой каталог мы будет копировать файл:
if(isset($_FILES
[
"myfile"
]))
// Если файл существует
{
$catalog
=
"../image/"
;
// Наш каталог
if (is_dir
($catalog
))
// Если такой каталог есть
{
$myfile
=
$_FILES
[
"myfile"
][
"tmp_name"
];
// Времменый файл
$myfile_name
=
$_FILES
[
"myfile"
][
"name"
];
// Имя файла
if(!
copy
($myfile
,
$catalog
)) echo
"Ошибка при копировании файла "
.
$myfile_name
// Если неудалось скопировать файл
}
else
mkdir
("../image/"
);
// Если такого каталога нет, то мы его создадим
}
?>
Замечание
Если вы доверяете пользователям закачивать на ваш сервер любые файлы, нужно быть предельно осторожным. Злоумышленники могут внедрить «нехороший» код в картинку или файл и отправить на сервер. В таких случаях нужно жестоко контролировать загрузку файлов.
Данный пример демонстрирует создание каталога и копирование файла в этот каталог на сервер.
Также хотел бы продемонстрировать пример с элементом checkbox
. Этот элемент немного отличается от других элементов тем, что если не один из элементов checkbox
’a не выбран, то суперглобальная переменная $_POST
вернет пустое значение:
Синий
Черный
Белый
if (!empty($_POST
[
"mycolor"
])) echo
$_POST
[
"mycolor"
];
// Если выбран хоть 1 элемент
else echo
"Выберите значение"
;
?>
Описание
Тег
устанавливает форму на веб-странице.
Форма предназначена для обмена данными между пользователем и сервером. Область
применения форм не ограничена отправкой данных на сервер, с помощью клиентских
скриптов можно получить доступ к любому элементу формы, изменять его и применять
по своему усмотрению.
Документ может содержать любое количество форм, но одновременно на сервер может
быть отправлена только одна форма. По этой причине данные форм должны быть независимы
друг от друга.
Для отправки формы на сервер используется кнопка Submit, того же можно
добиться, если нажать клавишу Enter
в пределах формы. Если кнопка Submit
отсутствует в форме, клавиша Enter
имитирует ее использование.
Когда форма отправляется на сервер, управление данными передается программе,
заданной атрибутом action
тега
.
Предварительно браузер подготавливает информацию в виде пары «имя=значение»,
где имя определяется атрибутом name
тега
,
а значение введено пользователем или установлено в поле формы по умолчанию.
Если для отправки данных используется метод GET
,
то адресная строка может принимать следующий вид.
Параметры перечисляются после вопросительного знака, указанного после адреса
CGI-программы и разделяются между собой символом амперсанда (&). Нелатинские
символы преобразуются в шестнадцатеричное представление (в форме %HH, где HH
— шестнадцатеричный код для значения ASCII-символа), пробел заменяется
на плюс (+).
Допускается внутрь контейнера
помещать другие теги, при этом сама форма никак не отображается на веб-странице, видны только ее элементы и результаты вложенных тегов.
Синтаксис
...
Атрибуты
Устанавливает кодировку, в которой сервер может принимать и обрабатывать данные.
Адрес программы или документа, который обрабатывает данные формы.
Включает автозаполнение полей формы.
Способ кодирования данных формы.
Метод протокола HTTP.
Имя формы.
Отменяет встроенную проверку данных формы на корректность ввода.
Имя окна или фрейма, куда обработчик будет загружать возвращаемый результат.
Закрывающий тег
Обязателен.
HTML5
IE
Cr
Op
Sa
Fx
Тег FORM
Как по вашему мнению расшифровывается аббревиатура "ОС"?