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

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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
php.exe, 
что, конечно же, нам не подходит. "Правильное" значение в этом случае можно 
найти в переменной окружения REDIRECT_URL, или в переменной PHP 
$REDIRECT_URL. 
К тому же, теперь исчезла необходимость и в промежуточном файле form.html: его 
код встроен в сам сценарий. Именно так и нужно разрабатывать сценарии: и просто 
и 
делу польза. Здесь действует общий принцип: чем меньше файлов, задающих внеш- 
ний вид страницы, тем лучше (только, ради бога, не обобщайте это на файлы с 
про- 
граммами — последствия могут быть катастрофическими!). 
Трансляция переменных 
окружения и Cookies 
Однако "интеллектуальные" возможности PHP на этом далеко не исчерпываются. 
Дело в том, что в переменные преобразуются не только все данные формы, но и пе- 

ременные окружения (включая QUERY_STRING, CONTENT_LENGTH и многие другие), а 
также все Cookies. 
Например, вот сценарий (листинг 8.6), который печатает IP-адрес пользователя, 
ко- 
торый его запустил, а также тип его браузера (эти данные хранятся в переменных 
окружения REMOTE_USER и HTTP_USER_AGENT): 
Листинг 8.6. Вывод IP-адреса и браузера пользователя 
 
Ваш IP-адрес: 
Ваш браузер: Глава 8. Работа с данными формы 149 По умолчанию трансляция выполняется в порядке ENVIRONMENT-GET-POSTCOOKIE, причем каждая следующая переменная как бы перекрывает предыдущее свое значение. Например, пусть у нас есть переменная окружения A=10, параметр, поступивший из GET-формы A=20 и Cookie A=30. В этом случае в переменную $A сценария будет записано 30, поскольку Cookie пере- крывает GET, а GET перекрывает переменные окружения. Так что, проверяя какую- либо переменную окружения VAR в сценарии (особенно если она касается вопросов, связанных с разграничением прав доступа — например, переменная содержит па- роль), задумайтесь на минутку: а что, если злоумышленник запустит ваш сценарий вот так: http://www.somehost.com/foo.php?VAR=что_то_очень_нехорошее и старое значение переменной окружения VAR окажется стертым? К счастью, в таких ситуациях есть выход — достаточно воспользоваться функцией getenv(), чтобы прочитать значение переменной окружения с указанным именем, и только его — не- взирая ни на какие другие данные. Подробнее об этой функции мы поговорим чуть позже. Трансляция списков Механизм трансляции полей формы в PHP работает приемлемо, когда среди них нет полей с одинаковыми именами. Если же таковые встречаются, то в переменную, яс- ное дело, записываются только данные последнего встретившегося поля. Это доволь- но-таки неудобно при работе, например, со списком множественного выбора
 
<<-[Весь Текст]
Страница: из 287
 <<-