Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
ользователя, 
на 
котором был запущен браузер. 
REMOTE_PORT 
Порт, который закрепляется за браузером пользователя для получения ответа 
сервера. 
SCRIPT_NAME 
Виртуальное имя выполняющегося сценария (то есть часть URL после имени сервера, 
но 
до символа ?). Эту переменную окружения, опять же, очень удобно брать на 
вооружение 
при формировании заголовка Location при переадресации на себя (self-redirect), 
а также 
при проставлении значения атрибута action тэга 
на странице, которую выдает сценарий при запуске без параметров (для того чтобы не привязываться к конкретному имени сценария). REQUEST_METHOD Метод, который применяет пользователь при передаче данных (мы рассматриваем только GET и POST, хотя существуют и другие методы). Надо заметить, что грамотно составленный сценарий должен сам определять на основе этой переменной, какой метод задействует пользователь, и принимать данные из соответствующего источни- ка, а не рассчитывать, что передача будет осуществляться, например, только методом POST. Впрочем, все PHP-сценарии так и устроены. QUERY_STRING Параметры, которые в URL указаны после вопросительного знака. Напомню, что они доступны как при методе GET, так и при методе POST (если в последнем случае они были определены в атрибуте action тэга ). CONTENT_LENGTH Количество байтов данных, присланных пользователем. Эту переменную необходимо анализировать, если вы занимаетесь приемом и обработкой POST-формы. Часть I. Основы Web-программирования 50 Передача параметров методом GET Тут все просто. Все параметры передаются единой строкой (а именно, точно такой же, какая была задана в URL после ?) в переменной QUERY_STRING. Единственная проблема — то, что все данные поступят URL-кодированными. Так что нам понадо- бится функция декодирования. Но это отдельная тема, пока мы не будем ее касаться. Для того чтобы узнать значения полученных переменных в Си, нужно воспользовать- ся функцией getenv(). Вот пример сценария на Си, который это обеспечивает. Листинг 3.2. Работа с переменными окружения #include // Включаем функции ввода/вывода #include // Включаем функцию getenv() void main(void) { // получаем значение переменной окружения REMOTE_ADDR char *RemoteAddr = getenv("REMOTE_ADDR"); // ... и еще QUERY_STRING char *QueryString = getenv("QUERY_STRING"); // печатаем заголовок printf("Content-type: text/html\n\n"); // печатаем документ printf(""); printf("

Здравствуйте. Мы знаем о вас все!

"); printf("Ваш IP-адрес: %s
",RemoteAddr); printf("Вот параметры, которые Вы указали: %s",QueryString); printf(""); } Откомпилируем сценарий и поместим его в "CGI-каталог". Теперь в адресной строке введем: http://www.myhost.com/cgi-bin/script.cgi?a=1&b=2 Мы получим примерно такой документ: Здравствуйте. Мы знаем о Вас все! Ваш IP-адрес: 192.232.01.23 Вот параметры, которые Вы указали: a=1&b=2 Глава 3. CGI изнутри 51 Передача параметров методом POST В отличие от метода GET, здесь параметры передаются сценарию не через перемен- ные окружения, а через стандартный поток ввода (в Си он называется stdin). То есть программа должна работать так, будто никакого сервера не существует, а она читает данные, которые вводит пользователь с клавиатуры. (Конечно, на самом деле никакой клавиатуры нет и быть не может, а
 
<<-[Весь Текст]
Страница: из 287
 <<-