#5. 1 php Создание web-форм

В этой главе описывается работа с различными элементами управления HTML — полями ввода, выключателями, переключателями, списками и т.п. Элементы управления превращают статическую страничку в интерактивную, содержимым которой можно управлять с их помощью. После того как пользователь ввел необходимые данные в соответствующие поля, они могут быть обработаны соответствующим скриптом, и сформирован ответ в виде HTML-страницы. Перечень элементов управления, которые рассматриваются в этой главе, приведен в таблице.

Элемент управления Тег Описание
Выключатель (chekbox) <INPUT TYPE = CHEKBOX> Выключатель. Подходит для ввода логических переменных
Кнопка (button) <BUTTON> Кнопка с произвольным внешним видом
Кнопка-изображение (image map) <INPUT TYPE = IMAGE> Графическое изображение, на котором выделены области различной формы (прямоугольники, овалы, многоугольники) для гиперссылок на другие страницы
Многострочный текст <TEXTAREA> Поле, предназначенное для ввода нескольких строчек текста
Отправка <INPUT TYPE = SUBMIT> Кнопка, предназначенная для завершения ввода данных и отправки их на web-сервер
Пароль <INPUT TYPE = PASSWORD> Текстовое поле для ввода пароля. При вводе символы не отображаются на экране, заменяясь звездочками
Переключатель (radiobutton) <INPUT TYPE = RADIO> Переключатель, предназначенный для выбора одного из нескольких вариантов
Скрытое поле <INPUT TYPE = HIDDEN> Предназначен для хранения текста, который не виден на экране, но доступен при обработке текста
Сброк <INPUT TYPE = RESET> Кнопка, предназначенная для очистки всех полей формы
Список <SELECT>, <OPTION>, <OPTGROUP> Многострочный список, предназначенный для выбора одного или нескольких вариантов
Текстовое поле <INPUT TYPE = TEXT> Поле, предназначенное для ввода однострочного текста или других данных
Файл <INPUT TYPE = FILE> Файл для загрузки на сервер

Создание web-формы

Элементы управления располагаются на web-форме. Для её создания используется HTML-тег <FORM>. Он имеет следующие атрибуты:

  • ACTION. Атрибут задает URL скрипта, который будет обрабатывать данные, введенные в форме. Если атрибут не задан, то по умолчанию обработчиком будет назначен текущий скрипт или документ.
  • METHOD. Определяет способ передачи данных скрипту-обработчику. Если используется метод GET (используется по умолчанию), то все поля, описанные в форме, передаются в строке URL в следующем виде: URL?name=value&name=value. При использовании метода POST поля формы кодируются таким же образом, но передаются через скрытые переменные, не используя строку URL. Метод POST обычно используется при передаче большого объема данных или если необходимо скрыть от пользователя передаваемый набор полей.
  • TARGET. Задает имя фрейма, в котором будут отображен результат выполнения обработчика формы. Например, требуется обработать данные, вводимые пользователем на странице phpreader.html, при помощи скрипта phpreader.php, расположенного в том же каталоге. В данном случае атрибуту ACTION присваивается значение "phpreader.php" (если бы скрипт-обработчик находится в другом каталоге или даже на другом сайте, то следовало бы указать относительный или абсолютный путь к нему, например, httр://www.orioner.ru/рhp/рhpreader.php).

Пример. Создание web-формы

<HTML>
    <HEAD>
        <TITLE>
            Пример HTML-формы
        </TITLE>
    </HEAD>
    <BODY>
        <H1>
            Пример HTML-формы
        </H1>
        <FORM METHOD="POST" ACTION="phpreader.php">
            <INPUT TYPE="SUBMIT" VALUE="OK">
        </FORM>
    </BODY>
</HTML>

Тег

<INPUT TYPE= "SUBMIT" VALUE="OK">

предназначен для отправки данных при нажатии на кнопку . Надпись на кнопке задаётся атрибутом VALUE и может быть произвольной, например:

<INPUT TYPE ="SUBMIT" VALUE="Зарегистрироваться">

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

<FORM METHOD="POST" ACTION="phpreader.php">
    <INPUT TYPE ="SUBMIT" VALUE="OK">
    <INPUT TYPE ="RESET" VALUE="Стереть">
</FORM>

Каким же образом обратиться к данным, переданным из формы скрипту? Если используется метод POST, для этого используется массив $_POST, как показано в следующем разделе. Для метода GET используется массив $_GET. Оба этих массива являются суперглобальными, что означает, что они доступны в любой функции без необходимости применения оператора global. Еще один суперглобальный массив $_REQUEST содержит объединение данных из $_GET и $_POST и может использоваться в тех случаях, когда скрипт может вызываться различными способами.

Замечание

Суперглобальные массивы $_GET, $_P0ST, $_REQUEST появились, начиная с PHP 4.1.0. До этой версии вместо $_GET и $_P0ST использовались глобальные массивы $HTTP_GET_VARS и $HTTP_POST_VARS, которые внутри функций требуют обязательного объявления при помощи оператора glоbal. Начиная с РНР 6.0, эти массивы перестали поддерживаться.

Key Words for FKN + antitotal forum (CS VSU):