Опубликован: 17.08.2006 | Уровень: для всех | Доступ: платный
Лекция 18:

Web-программирование

< Лекция 17 || Лекция 18: 123456

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.

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

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

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

< Лекция 17 || Лекция 18: 123456
Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Галина Башкирова
Галина Башкирова

Здравствуйте, недавно закончила курс по проф веб программиованию, мне прислали методические указания с примерами тем, однако темы там для специальности 

Системный администратор информационно-коммуникационных» систем.
Мне нужно самой найти тему? или делать по высланным темам

 

Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008
Akiyev Begench
Akiyev Begench
Беларусь, Полоцк, полоцкий государственный университет