Оглавление

Доступ к значениям формы

Доступ к значениям формы в РНР можно получить с помощью специальных массивов. Массивы $_GET и $_POST содержат значения, отправленные, соответственно, методами GET и POST. Гибридный массив $_REQUEST содержит значения из обоих массивов, а также значения массива $_СООКIЕ, который рассматривается в уроке 14, "Данные cookies и сеансы".

 

 

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

 

 

Доступ к значениям элементов формы интуитивно понятен. Элементу формы с определенным именем соответствует элемент  массива   $_GET   или   $_POST   с   соответствуюим ключом. А значение этого элемента соответствует введенному пользователем значению для этого элемента.

 
Например, почтовый адрес из странички comments.html содержится в элементе  $_POST[ "email"], а текст комментария — в $_POST [" comments"].

 
Для типов CHECKBOX и RADIO атрибут VALUE определяет значение, которое получит РНР. Если установить флажок may„contact,  элемент   $_POST[ "may_contacts"]   будет содержать значение Y. Если же этот элемент оставить не уcтановленным,  он вообще не  появится  в соответствующем массиве.   Поэтому нужно использовать   функцию   isset,  чтобы узнать о том, установлен ли флажок.

 

 

Стандартное значение флажка
Если флажок установлен, но в HTML-коде для него не задан атрибут VALUE, в РНР передается значение on.

 

 

Группа переключателей  gender создает элемент  $_POST["gender"], который содержит значение m или f, d зависимосги от выбранного значения. Если ни один из переключателей не отмечен, как и в случае с флажком, соответствующий элемент не создается вообще.

 
С помощью функции printer_r легко увидеть все значения, полученные из формы. Для этого на ее вход подается
массив $_P0ST:


echo "<pre>";
print_r($_POST);
echo "</pre";


Это очень полезный прием отладки, который позволяет видеть все данные, которые сценарий получает из формы.
Если создать файл send_comment.php и поместить в него код, приведенный выше, на экране появятся значения каждoro элемента формы. Вот пример вывода:

 

Array
(
    [name] => Иван
    [email] => ivan@mail.ru
    [gender] => m
    [referrer] => search
    [may_contact] => y
    [comments] => Мой любимый сайт
		
)

 

 

 Даже значение кнопки подачи формы можно увидеть в PHP.. Для этого нужно задать имя и отправить форму,
щелкнув на нужной кнопке.  Следующая форма содержит две кнопки с разными именами, а РНР позволяет определить, какая из них отправила форму:


<form action="button.php" method=post>
<input type="submit" name="button1" value="Кнопка 1">
<input type="submit" name="button2" value="Кнопка 2">
</form>


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


if (isset($_POST["button1"])) {
	echo "Вы нажали кнопку 1";
}
elseif (isset($_POST["button2"])) {
	echo "Вы нажали кнопку 2";
}
else {
	echo "Я не знаю, какую кнопку вы нажали";
}

 

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

 

 

Кнопка submit
Новые браузеры отправляют данные формы, если нажать клавишу <Enter>, когда фокус находится на элементе ввода. Даже если в форме всего один элемент подачи формы, его значение передается в РНР, только если щелкнуть на этой кнопке.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити