В этой главе описывается работа с различными элементами управления HTML — полями ввода, выключателями и переключателями, списками и т.п. Элементы управления превращают статическую страничку в интерактивное содержимое, которым можно управлять с их помощью. После того как пользователь ввел необходимые данные в соответствующие поля, они могут быть обработаны соответствующим скриптом, и сформирован ответ в виде HTML-страницы. Перечень элементов управления, которые рассматриваются в этой главе, приведен в табл. 5.1.
Элемент управления | Тег | Описание |
Выключатель (checkbox) | < INPUT TYPE=CHECKBOX> | Выключатель, идеален для ввода логических переменных. |
Кнопка (button) | < BUTTON> | Кнопка с произвольным внешним видом. |
Кнопка-изображение(image map) | < INPUT TYPE=IMAGE> | Графическое изображение, на котором выделены области различной формы (прямоугольники, овалы, многоугольники] для гиперссылок на другие страницы. |
Многострочный текст | < TEXTAREA> | Поле,предназначенное для ввода нескольких строчек текста. |
Отправка | < INPUT TYPE=SUBMIT> | Кнопка, предназначенная для завершения ввода данных и отправке их на web-сервер. |
Пароль | < INPUT TYРE=PASSWORD> | Текстовое поле для ввода пароля. При вводе символы пароля не отображаются на экране, заменяясь звездочками. |
Переключатель (radiobutton) | < INPUT TYPE=RADIO> | Переключатель, предназначенный дпя выбоpa одного из нескольких вариантов. |
Скрытое поле | < INPUT TYPE=HIDDEN> | Предназначен для хранения текста, который не виден на экране, но доступен при обработке формы |
Сброс | < INPUT TYPE=RESET> | Кнопка, предназначенная для очистки всех полей формы. |
Список | < SELECT>, < OPTION>, < OPTGROUP> | Многострочный список, предназначенный для выбора одного или нескольких элементов. |
Текстовое поле | < INPUT TYPE=TEXT> | Поле, предназначенное для ввода однострочного текста или других данных. |
Файл | < INPUT TYPE=FILE> | Файл для загрузки на сервер. |
Прежде чем приступить к обработке данных в PHP-скрипте, необходимо
создать web-форму, где их можно было бы ввести. Для этого используется
HTML-тег <F0RM>
. Он имеет следующие атрибуты:
- 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). Пример такой формы приведен ниже.
<HTML>
<HEAD>
<TITLE>
Пример HTML-формы
</TITLE>
</HEAD>
<BODY>
<H1>
Пример HTML-формы
</H1>
<FORM METHOD="POST" ACTION="phpreader.php">
...
</FORM>
</BODY>
</HTML>
Теперь следует наполнить форму полями, например выключателями, переключателями или текстовыми полями. После того как пользователь внесет все необходимые данные и нажмет кнопку «Отправить», будет запущен скрипт phpreader.php, и все данные будут переданы ему. Для отправки предназначен специальный тип кнопки, как показано на примере ниже:
<HTML>
<HEAD>
<TITLE>
Пример HTML-формы
</TITLE>
</HEAD>
<BODY>
<H1>
Пример HTML-формы
</H1>
<FORM METHOD="POST" ACTION="phpreader.php">
<INPUT TYPE="SUBMIT" VALUE="OK">
</FORM>
</BODY>
</HTML>
Выделенный жирным шрифтом тег отображает кнопку с надписью «ОК»,
предназначенную для отправки данных. Надпись на кнопке может быть
произвольной и задается атрибутом 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, эти
массивы перестали поддерживаться.