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

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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 примера, — то, 
что 
все URL-перекодирования и преобразования осуществляются браузером автоматиче- 
ски. То есть, пользователю теперь совершенно не нужно об этом задумываться и 
ло- 
мать голову над путаницей шестнадцатеричных кодов и управляющих символов. 
Абсолютный и относительный 
путь к сценарию 
Обратим внимание на поле action тэга 
. Поскольку он не предваряется слэ- шем (/), то представляет собой относительный путь к сценарию. То есть браузер при анализе тэга попытается выдать запрос на запуск сценария, имеющего имя script.cgi и расположенного в том же самом каталоге, что и форма (точнее, HTML-документ с формой). Часть I. Основы Web-программирования 40 Как вы, наверное, догадались, термин "каталог" здесь весьма условен. На са- мом-то деле имеется в виду не реальный каталог на сервере (о котором брау- зер, кстати, ничего не знает), а часть URL, предшествующая последнему сим- волу / в полном URL файла с формой. В нашем случае это просто http://www.somehost.com. Заметьте, что здесь учитывается имя хоста. Как видим, все это мало похоже на обычную файловую спецификацию. Однако можно указать и абсолютный путь, как на текущем, так и на другом хосте. В первом случае параметр action будет выглядеть примерно следующим образом: Браузер определит, что это абсолютный путь в пределах текущего хоста (точнее, хос- та, на котором расположен документ с формой) по наличию символа / впереди пути. Рекомендуется везде, где только возможно, пользоваться таким определением пути, всячески избегая указания абсолютного URL с именем хоста — конечно, за исключе- нием тех ситуаций, когда ресурс размещен сразу на нескольких хостах (такое тоже иногда встречается). Во втором случае получится приблизительно следующее: Еще раз обратите внимание на то, что браузеру совершенно все равно, где находится запускаемый сценарий — на том же хосте, что и форма, или нет. Это позволяет соз- давать сайты, расположенные на нескольких хостах, "прозрачно" для их посетителей. Вся идеология сети Интернет и службы World Wide Web построена на этой идее — возможности свободного перемещения (и ее легкости) по гиперссылкам, где бы ни находился сервер, на который они указывают. Метод POST и формы Что же теперь нужно сделать, чтобы послать данные не методом GET, а методом POST? Нетрудно догадаться: достаточно вместо method=GET указать method=POST. Больше ничего менять не надо. Если не задать параметра action в тэге вообще, то по умолчанию подразумевается метод GET. Таким образом, мы можем теперь вообще не нагружать пользователя такой инфор- мацией, как имя сценария, его параметры и т. д. Он всегда будет иметь дело только с полями ввода текста, переключателями и кнопками формы, а также с гиперссылками. Однако в рассмотренной схеме не все гладко с точки зрения простоты: сценарий один, а файла-то два (документ с формой и файл сценария). Есть простое обходное Глава 2. Интерфейс CGI 41 решение этой проблемы, которое рекомендуется применять всюду, где это только возможно: пусть сценарий в первую очередь проверяет, запущен ли он с параметрами или без них. Если параметров нет, то сценарий выдает пользователю HTML-документ с формой, в противном случае — результаты работы. Это удобно еще и потому, что, возможно, вы захотите, чтобы пользователь обязательно ввел свое имя. То есть, если он забудет это сделать, ему будет выдана все та же форма с сообщением напротив поля ввода для имени: "Извините, но Вы забыли ввести свое имя. Попробуйте еще, вдруг на этот раз получится?". А в следующей главе мы попутно рассмотрим, как проще всего определить, был запущен сценарий по нажатии кнопки или же просто набором его URL в браузере. Приведенная схема минимизации колич
 
<<-[Весь Текст]
Страница: из 287
 <<-