Учебное пособие: Web-программирование. Обработка HTML-форм

</html>

Загрузим документ в браузер. Теперь, если заполнить поля ввода и нажать кнопку, браузер обратится к сценарию hello.php и передаст через? все атрибуты, расположенные внутри тегов <input> в форме и разделенные символом & в строке параметров. Заметьте, что в атрибуте action тега <form> задан относительный путь, т. е. сценарий hello.php будет искаться браузером в том же самом каталоге, что и файл form.html .

Все перекодирования и преобразования, которые нужны для URL -кодирования данных, осуществляются браузером автоматически. В частности, буквы кириллицы превратятся в %хх , где хх — некоторое шестнадцатеричное число, обозначающее код символа.

Использование форм позволяет не обременять пользователя такой информацией, как имя сценария, его параметры и т. д. Он всегда будет иметь дело только с полями, переключателями и кнопками формы:

Осталось определиться, как можно извлечь $ l ogin и $password из строки параметров.

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

2.2. Трансляция полей формы

Мы не хотим заниматься прямым разбором переменной окружения query_string , в которой хранятся параметры сценария. И правильно — интерпретатор перед запуском сценария делает все сам. Причем независимо от того, каким методом — get или post — воспользовался браузер. То есть, РНР сам определяет, какой метод был задействован (информация об этом доступна через переменную окружения request_method ), и получает данные либо из query_string , либо из стандартного входного потока.

Все данные из полей формы РНР помещает в глобальный массив $_ REQUEST .

В нашем случае значение поля login после начала работы программы будет храниться в $_ REQUEST [' login '] , а значение поля p assword — в $_ REQUEST ['password'].

Кроме того, чтобы можно было как-то разделить GET -параметры от POST -данных, РНР также создает массивы $_GET и $_ POST , заполняя их соответствующими значениями. Массив $_ REQUEST представляет собой объединение этих двух массивов.

Листинг hello.php. Сценарий извлечения текста из полей формы

<?php

if ($_REQUEST[’login’]==”root” && $_REQUEST[’password’]==”Z10N0101”)

{

echo «Доступ открыт для пользователя $_REQUEST[login]»;

//Команда блокирования рабочей станции (работает в NT-системах)

system(“rundll32.exe user32.dll,LockWorkStation”);

}

else

{

echo “ Доступ закрыт !”;

}

?>


Если при вводе данных будет совершена ошибка, например, неправильно введено имя:

то доступ будет закрыт:

К-во Просмотров: 542
Бесплатно скачать Учебное пособие: Web-программирование. Обработка HTML-форм