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

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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
ейс CGI 37 
Что такое формы 
и для чего они нужны 
Итак, мы знаем, что наиболее распространенными методами передачи данных между 
браузером и сценарием являются GET и POST. Однако вручную задавать строки пара- 

метров для сценариев и к тому же URL-кодировать их, согласитесь, довольно 
утоми- 
тельно. Давайте посмотрим, что же язык HTML предлагает нам для облегчения жиз- 
ни. 
Сначала рассмотрим метод GET. Даже программисту довольно утомительно набирать 
параметры в URL вручную. Всякие там ?, &, %... Представьте себе пользователя, 
ко- 
торого принуждают это делать. К счастью, существуют удобные возможности языка 
HTML, которые, конечно, поддерживаются браузерами. И хотя я уже замечал, что в 
этой книге будет лишь немного рассказано о HTML, о формах мы поговорим очень 
подробно. 
Итак, пусть у нас на сервере в корневом каталоге размещен файл сценария 
script.cgi (наверное, вы уже заметили, что расширение cgi принято присваивать 
CGI-сценариям, хотя, как уже упоминалось, никто не мешает вам использовать 
любое 
другое слово). Этот сценарий распознает 2 параметра: name и age. Где эти 
парамет- 
ры задаются, мы пока не решили. При переходе по адресу 
http://www.somehost.com/script.cgi он должен отработать и вывести сле- 
дующую HTML-страницу: 
 
Привет, name! Я знаю, Вам age лет! 
 
Разумеется, при генерации страницы нужно name и age заменить на соответствую- 
щие значения, переданные в параметрах. 
Передача параметров "вручную" 
Давайте будем включать параметры прямо в URL, в строку параметров. Таким обра- 
зом, если запустить в браузере 
http://www.somehost.com/script.cgi?name=Vasya&age=20 
мы получим страницу с нужным результатом: 
 
Привет, Vasya! Я знаю, Вам 20 лет! 
 
Заметьте, что мы разделяем параметры символом &, а также используем знак равен- 

ства =. Это неспроста. Сейчас мы обсудим, почему. 

Часть I. Основы Web-программирования 38 
Использование формы 
Как теперь нам сделать, чтобы пользователь мог в удобной форме ввести свое имя 
и 
возраст? Очевидно, нам придется создать что-то вроде диалогового окна Windows, 
только в браузере. Итак, нам понадобится обычный HTML-документ (например, с 
именем form.html и расположенный в корневом каталоге) с элементами этого диало- 

га — полями ввода текста и кнопкой, при нажатии на которую запустится наш 
сцена- 
рий. Текст этого документа приведен в листинге 2.1. 
Листинг 2.1. Документ /form.html с формой 
 
Введите имя:
Введите возраст:
Вы можете заметить, что некоторые атрибуты тэгов я написал в кавычках (на- пример, name="age"), а некоторые — нет. Как показывает практика, везде, где это не конфликтует с синтаксисом HTML (то есть, в текстах, в которых нет про- белов и букв кириллицы), можно кавычки опускать. Мне лично нравится за- ключать значения полей name и value в кавычки, а остальные — писать без них. Правда, стандарт на язык HTML это не допускает (он требует обязательного наличия кавычек), но большинство браузеров относится к этому весьма и весьма лояльно. Загрузим наш документ в браузер. Получим примерно следующее: Глава 2. Интерфейс CGI 39 Рис. 2.1. HTML-форма Теперь, если занести в поле name свое имя, а в поле для возраста — возраст и нажать кнопку Нажмите кнопку!, браузер обратится к сценарию по URL, указанному в ат- рибуте action тэга формы: http://www.somehost.com/script.cgi Он передаст через ? все параметры, которые помещены внутрь тэгов input в форме, отделяя их амперсандом (&). Имена полей и их значения будут разделены знаком =. Теперь вы понимаете, почему мы с самого начала использовали эти символы? Итак, реальный URL, который будет сформирован браузером при старте сценария, будет таким (учитывая, что на странице был пользователь по имени Vasya и ему 20 лет): http://www.somehost.com/script.cgi?name=Vasya&age=20 Самое, пожалуй, полезное, что можно вынести из рассмотренног
 
<<-[Весь Текст]
Страница: из 287
 <<-