Язык программирования Perl

CGI-программы


Упоминавшийся уже интерфейс программирования CGI поддерживается всеми web-серверами. Сегодня CGI-программы разрабатываются не на чистом Perl, а с использованием различных вспомогательных модулей и библиотек. Возможно, самой популярной из них по праву считается стандартная библиотека CGI. С ее помощью можно писать CGI-программы проще, быстрее и надежнее. Разработка программ CGI на Perl описывается во многих специализированных книгах.

В качестве примера напишем простенькую "гостевую книгу" - программу, которая с помощью функций библиотеки CGI (start_html, textfield и т.д.) выводит HTML-страницу с формой для отправки на сайт отзывов посетителей. После отправки данных формы на сервер вызывается эта же CGI-программа, которая с помощью функции param() проверяет, получены ли данные формы, и выводит присланный комментарий. Вот текст программы:

#!C:/usr/local/apache/Perl/bin/perl.exe # в первой строке CGI-программы указан путь к perl use CGI qw/:standard/; # применяем стандартные средства CGI print # выводим в выходной поток header(-charset=>'windows-1251'), # в кодировке CP1251: start_html('Гостевая книга'), # шапку страницы, h3('Здесь Вы можете оставить свой отзыв'),# заголовок, start_form, # форму, в ней "Имя: ", # надпись, textfield(-name=>'nick', size=>8), p, # поле ввода, "Э-почта: ", # надпись, textfield(-name=>'email', size=>32), p, # поле ввода, "Комментарий: ", p, # надпись, textarea(-name=>'comments', # область ввода -rows=>5, -columns=>50), p, # из 5 строк на 50 колонок, submit('Отправить'), # кнопку, end_form, # конец формы hr, "\n"; # и горизонтальную черту # далее проверяем, были ли присланы данные формы if (param) { # если присланы данные - параметры формы print # выводим: a({href=>"mailto:".param('email')}, # ссылку на E-mail param('nick')), # и имя, а также " пишет: ", p, param('comments'), p, # комментарий hr,"\n"; # и горизонтальную черту } print end_html; # оформляем конец страницы

При первом выполнении эта программа выводит пустую HTML-форму, а после того как форма заполнена и данные формы отправлены на сервер, на странице после формы выводится последний полученный комментарий. В результате будет сгенерирована web-страница, приведенная на рис. 18.1.


Рис. 18.1.  Результат выполнения CGI-программы

Отлично протестированные подпрограммы стандартной библиотеки CGI выполняют все действия по созданию правильно оформленных web-страниц. Они скрывают от программиста трудности и тонкости при преобразовании параметров и обработке данных форм. Web-страницы можно формировать программно без использования разметки на языке HTML. Библиотека CGI также имеет объектно-ориентированный интерфейс со всеми необходимыми классами и методами для работы с объектами HTTP-запросов в CGI-программах.



Содержание раздела