Обработка запросов в PHP

Для обращения к переменным, переданным с помощью HTTP-запросов, исполдьзуется специальный массив – $_REQUEST. Этот массив содержит данные, переданные методами POST и GET, а также с помощью HTTP cookies. Это суперглобальный ассоциативный массив, т.е. его значения можно получить в любом месте программы, используя в качестве ключа имя соответствующей переменной (элемента формы).

Допустим, мы создали форму для регистрации участников конференции по программирования, содержащую поля first_name, last_name, title_paper, section. Тогда скрипт, обрабатывающем эту форму, может быть следующий:

<?php

$str = "Здравствуйте,

".$_REQUEST["first_name"]. "

".$_REQUEST["last_name"]."! <br>";

$str .="Вы зарегистрировались на конференцию в секцию ".$_REQUEST["section "]." С докладом ".$_REQUEST["title_paper "] ;

echo $str;

?>

Тогда, если в форму мы ввели имя «Вася», фамилию «Петров» и выбрали среди всех секций секцию РНР и ввели название доклада “Обработка запросов в РНР”, на экране браузера получим такое сообщение:

Вася Петров!

Вы зарегистрировались на конференцию в секцию РНР С докладом Обработка запросов в РНР.

 

Есть также суперглобальные массивы $_POST и $_GET, содержащие параметры, переданные по POST и GET запросам соответственно.

Приведем пример использования этих массивов. Допустим, нам нужно обработать форму, содержащую элементы ввода с именами first_name, last_name, title_paper, section. Данные были переданы методом POST, и данные, переданные другими методами, мы обрабатывать не хотим. Это можно сделать следующим образом:

<?php

$str = "Здравствуйте,

".$_POST["first_name"]. "

".$_POST["last_name"]."! <br>";

$str .="Вы зарегистрировались на конференцию в секцию ".$_POST ["section "]." С докладом ".$_POST["title_paper "] ;

echo $str;

?>

Для того, чтобы сохранить возможность обработки скриптов более ранних версий, чем PHP5, была введена директива register_globals, разрешающая или запрещающая доступ к переменным непосредственно по их именам. Если в файле настроек PHP параметр register_globals=On, то к переменным, переданным серверу методами GET и POST, можно обращаться просто по их именам (т.е. можно писать $first_name). Если же register_globals=Off, то нужно писать $_REQUEST["first_name"] или $_POST["first_name"], $_GET["first_name"], $HTTP_POST_VARS["first_name"], $HTTP_GET_VARS["first_name"]. С точки зрения безопасности эту директиву лучше отключать (т.е. register_globals=Off). При включенной директиве register_globals перечисленные выше массивы также будут содержать данные, переданные клиентом.

Иногда возникает необходимость узнать значение какой-либо переменной окружения, например метод, использовавшийся при передаче запроса или IP-адрес компьютера, отправившего запрос. Получить такую информацию можно с помощью функции getenv(). Она возвращает значение переменной окружения, имя которой передано ей в качестве параметра.

<?

getenv('REQUEST_METHOD');

// возвратит использованный метод

echo getenv ('REMOTE_ADDR');

// выведет IP-адрес пользователя, пославшего запрос

?>

При использовании метода GET, данные передаются добавлением строки запроса в виде пар «имя_переменной=значение к URL-адресу ресурса». Все, что записано в URL после знака вопроса, можно получить с помощью команды getenv('QUERY_STRING');








Дата добавления: 2015-08-26; просмотров: 794;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.