Вывод параметров командной строки
echo "Данные из командной строки: $QUERY_STRING";
?>
Если теперь мы запустим этот сценарий из браузера (перед этим сохранив его в
фай-
ле test.php в корневом каталоге сервера) примерно вот таким образом:
http://www.myhost.com/test.php?aaa+bbb+ccc+ddd
то получим документ следующего содержания:
Данные из командной строки: aaa+bbb+ccc+ddd
Обратите внимание на то, что URL-декодирование символов не произошло: строка
$QUERY_STRING, как и одноименная переменная окружения, всегда приходит в той
же самой форме, в какой она была послана браузером. Давайте запомним этот не-
большой пример — он еще послужит нам в будущем.
Так как PHP изначально создавался именно как язык для Web-программирования, то
он дополнительно проводит некоторую работу с переменной $QUERY_STRING перед
Глава 8. Работа с данными формы 145
тем, как управление будет передано сценарию.
А именно, он разбивает ее по пробельным символам (в нашем примере пробелов нет,
их заменяют символы +, но эти символы PHP также понимает правильно) и помещает
полученные кусочки в массив-список $argv, который впоследствии может быть про-
анализирован в программе. Заметьте, что здесь действует точно такая же техника,
которая принята в Си, с точностью до названия массива с аргументами.
Все же массив $argv используется при программировании на PHP крайне редко, что
связано с гораздо большими возможностями интерпретатора по разбору данных, по-
ступивших от пользователя. Однако в некоторых (обычно учебных) ситуациях его
применение оправдано, так что не будем забывать об этой возможности.
Формы
Вернемся к поставленной задаче. Как нам сделать, чтобы пользователь мог в
удобной
форме ввести свое имя и возраст? Очевидно, нам придется создать что-нибудь типа
диалогового окна Windows, только в браузере. Итак, нам понадобится обычный
HTML-документ (например, по имени form.html в корневом каталоге) с элементами
этого диалога — текстовыми полями — и кнопкой. Давайте возьмем ту же самую
форму, которую я уже приводил в примере в первой части книги, только теперь мы
уже будем не просто разбирать, как и куда поступают данные, а напишем сценарий,
который эти данные будет обрабатывать (листинг 8.2).
Листинг 8.2. form.html: страница с формой
Загрузим наш документ в браузер. Теперь, если ввести в поле с именем свое имя,
а в
поле для возраста — свой возраст и нажать кнопку, браузер автоматически
обратится
к сценарию hello.php и передаст через ? все атрибуты, расположенные внутри тэ-
гов в форме и разделенные символом & в строке параметров. Заметьте, что
в атрибуте action тэга