Шаг 159.
Фунции модуля CGI.pm, использованные в сценарии
На этом шаге мы рассмотрим функции, которые мы использовали в сценарии.
Познакомимся с функциями, использованными в примере.
- Функция header() без параметров создает для виртуального ответа сервера стандартный HTTP-заголовок
и вставляет после него необходимую пустую строку. Параметры позволяют задать дополнительную информацию для
заголовка, например, указать другой медиа-тип содержимого или код ответа, посылаемый браузеру:
print header(-type=>'image/gif ,
-status=>'404 Not Found');
- Функция start_html() создает HTML-заголовок и начальную часть документа, включая
открывающий тэг <BODY>. При помощи параметров функции можно задать дополнительные тэги внутри
тэга <HEAD>, а также значения атрибутов. Все параметры являются необязательными. В примере
функция start_html() вызвана с одним позиционным параметром, определяющим название документа.
Модуль CGI содержит методы (функции) для поддержки многих тэгов HTML2, HTML3, HTML4 и
расширений, используемых в браузерах Netscape. Тэгам соответствуют одноименные методы модуля CGI.pm,
имена которых записываются при помощи символов нижнего регистра. Если при этом возникают конфликты имен, в
названия методов следует вводить символы верхнего регистра, как, например, в следующих случаях.
- Название тэга <TR> совпадает с именем встроенной функции tr(). Имя
соответствующего метода записывать в виде TR() или Tr().
- Название тэга <PARAM> совпадает с именем собственного метода модуля
CGI param(). Для обозначения метода, соответствующего тэгу, использовать имя PARAM().
- Название тэга <SELECT> совпадает с именем встроенной функции
select(). Для обозначения метода использовать имя Select().
- Название тэга <SUB> совпадает с именем ключевого слова объявления
функции sub. Для обозначения метода использовать имя Sub().
Тэгам, имеющим атрибуты, соответствуют методы, имеющие в качестве первого аргумента ссылку на анонимный
хеш-массив. Ключами этого хеш-массива являются имена атрибутов тэга, а значениями - значения атрибутов.
Методы, соответствующие тэгам, и методы, предназначенные для генерирования других элементов HTML-документа,
возвращают строки, содержащие соответствующие элементы. Чтобы эти строки попали в создаваемый документ, их
нужно вывести, как это делается в примере при помощи функции print.
В примере использованы следующие методы, соответствующие тэгам HTML.
- Функция h2 соответствует тэгу <Н2>. Она определяет, что ее аргумент является в
документе заголовком второго уровня.
- Функция br соответствует тэгу <BR> и обозначает, что последующий текст размещается
с начала новой строки.
- Функция р соответствует тэгу <P> и обозначает начало абзаца.
- Функция hr соответствует тэгу <HR> и обозначает горизонтальную линию, разделяющую документ
на части.
- Функция em соответствует тэгу <EM> и обозначает, что ее аргумент в документе должен
быть выделен курсивом.
Следующие функции используются для создания формы и ее элементов.
- Функция start_form соответствует тэгу <FORM>. Она может иметь три параметра
start_form(-method=>$method,
-action=>$action,
-encoding=>$encoding);
при помощи которых можно задать метод передачи формы Web-серверу (-method), программу,
предназначенную для обработки формы (-action), и способ кодирования данных (-encoding). Все
параметры являются необязательными. По умолчанию используются значения
method: POST;
action: данный сценарий;
encoding: application/x-www-form-urlencoded.
- Функция end_form создает закрывающий тэг </FORM>.
- Функция textfield соответствует тэгу <INPUT TYPE=TEXT>. Она имеет следующий синтаксис
textfield(-name=>'field_name',
-default=>'starting value',
-size=>50,
-maxlength=>80);
Параметры соответствуют атрибутам тэга. Обязательным является первый параметр.
- Функция password_field соответствует тэгу <INPUT TYPE=PASSWORD>. Ее синтаксис:
password_field(-name=>'secret',
-value=>'starting value',
-size=>8,
-maxlength=>12) ;
Параметры имеют тот же смысл, что и одноименные атрибуты соответствующего тэга. Обязательным является первый параметр.
- Функция radio_group служит для создания группы "радиокнопок" - элементов, задаваемых тэгом
<INPUT TYPE=RADIO>. Ее синтаксис имеет следующую форму
radio_group(-name=>'group_name',
-values=>['bim','bam','bom'],
-default=>'bom',
-linebreak=>'true',
-labels=>\%labels);
Первый аргумент является обязательным, соответствует одноименному атрибуту тэга. Второй аргумент тоже
обязательный и задает значения элементов. Эти значения отображаются в качестве названий кнопок. Он должен быть
ссылкой на массив. Остальные аргументы являются необязательными. Третий аргумент задает кнопку, которая
выбрана по умолчанию. Если значение четвертого аргумента 'true', каждая следующая кнопка группы
размещается в начале новой строки. Пятым аргументом является ссылка на хеш-массив, который связывает значения,
присвоенные кнопкам, с метками, которые отображаются в виде названий кнопок. Если аргумент не задан,
то в качестве названий отображаются сами значения.
- Функция checkbox_group служит для создания группы элементов-переключателей, задаваемых тэгом
<INPUT TYPE= CHECKBOX>.
checkbox_group(-name=>'group_name',
-values=>['bim','bam','bom'],
-default=>['bim','bom'],
-linebreak=>'true',
-labels=>\%labels);
Аргументы имеют тот же смысл, что и одноименные аргументы функции radio_group. Поскольку в группе
переключателей можно одновременно выбрать несколько элементов, третий аргумент может быть или одиночным
элементом, или ссылкой на массив, содержащий список значений, выбранных по умолчанию. Обязательными
являются первый и второй аргументы.
- Функция popup_menu служит для создания меню, задаваемого при помощи тэга <SELECT>.
Имеет следующий синтаксис:
popup_menu(-name=>'menu_name',
-values=>['bim','bam','bom'],
-default=>'bom',
-labels=>\%labels);
Первый аргумент задает имя меню. Второй аргумент является ссылкой на массив, содержащий список значений,
присвоенных элементам меню. Первый и второй аргументы обязательны, остальные - нет. Третий аргумент задает
элемент меню, выбранный по умолчанию. Четвертый аргумент является ссылкой на хеш-массив. Хеш-массив значению
каждого элемента меню ставит в соответствие строку, которая будет отображаться в меню для этого элемента.
Если четвертый аргумент отсутствует, то для каждого элемента меню отображается его значение, заданное вторым
аргументом.
- Функция textarea соответствует тэгу <TEXTAREA>, задающему в документе текстовое поле для
ввода многострочного текста. Имеет следующий синтаксис
textarea(-name=>'region',
-default=>'starting value',
-rows=>10,
-columns=>50);
Первый параметр, задающий имя элемента формы <TEXTAREA>, является обязательным, остальные - нет.
Второй параметр задает строку, отображаемую по умолчанию. Третий и четвертый параметры задают соответственно
число строк и столбцов, отображаемых в текстовом поле.
- Функция submit соответствует тэгу <INPUT TYPE=SUBMIT>, задающему кнопку передачи.
Ее синтаксис:
print $query->submit(-name=>'button_name',
-value=>'value');
Первый параметр является необязательным. Он задает имя кнопки, которое отображается в качестве ее названия.
Нужен только для переопределения названия Submit и в тех случаях, когда надо различать несколько
имеющихся кнопок передачи. Второй параметр тоже необязательный. Он задает значение, которое посылается в
строке запроса при щелчке на этой кнопке.
- Функция reset соответствует тэгу <INPUT TYPE=RESET>, задающему кнопку сброса.
Может иметь параметр, переопределяющий название Reset, отображаемое по умолчанию.
- Функция end_html завершает HTML-документ, добавляя тэги </BODY></HTML>.
На следующем шаге мы закончим изучение этого вопроса.
Предыдущий шаг
Содержание
Следующий шаг