Лістинг 5.9. Функціонально орієнтований інтерфейс пакету CGI.
#!/usr/local/bin/perl
use CGI qw/:standard/;
print header(-charset=>'windows-1251', -lang=>'ru')
start_html(' CGI Functions Example' ),h1('CGI Functions Example')
start_form, "Please enter your name: ", textfield('text'), p
submit(-value=>'Отправить'), reset(-value=>'Отмена'), end_form,hr;
if(param()) {print "Your name is: ",em(param('text')), hr;}
print end_html;
Використання cgi-lib.pl. Раніше розповідалося про CGI-программировании на базі методів стандартного модуля CGI.pm. He менш популярний серед програмістів пакет cgi-lib.pl. Оскільки багато CGI-сценарии на Perl написано з його допомогою, далі розповідається саме про нього. Авторські права на цей пакет належать його творцеві Стівену Е. Бреннеру, на домашній сторінці якого (http://cgi-lib.stanford.edu/cgi-lib) можна отримати копію cgi-lib.pl. Вам дозволяється працювати з cgi-lib.pl і навіть змінювати його до тих пір, поки ваші дії не ущемлюватимуть описані на початку файлу авторські права. Особлива процедура установки не потрібна — файл cgi-lib.pl копіюється в каталог, де зберігаються CGI-сценарии, і за допомогою команди require підключається до них:
require 'cgi-lib.pl';
Якщо у вас немає цього пакету - просто використовуйте модуль CGI.pm у такому контексті:
use CGI qw/:ReadParse, PrintHeader, HtmlTop, HtmlBot, SplitParam/;
Далі створюються два сценарії, що генерують ті ж сторінки, що і в попередній главі, але замість CGI.pm цього разу буде використаний пакет cgi-lib.pl. Попередні сценарії називалися cgil.pl і cgi2.pl, а в цій мова піде про libl.pl і lib2.pl.
Пакет cgi-lib.pl підключається до сценарію за допомогою команди require. (He заборонено використовувати також use, але навряд чи вам зустрінеться такий варіант.) На відміну від модуля CGI.pm, кількість функцій, що генерують теги HTML в cgi-lib.pl, украй обмежено. Зазвичай ці теги доводиться виводити уручну. (Пакет cgi-lib.pl призначався в першу чергу для розбору посланих сценарію даних.) Втім, деякі теги HTML все ж генеруються автоматично: підпрограма PrintHeader створює шапку HTML, необхідну для сторінки, розділ HtmlTop (мітки <HEAD> і <BODY>). Також з її допомогою можна створити заголовок сторінки, як показано в наступному прикладі, задаючому сторінку із заголовком "My Web Page":
#!/usr/local/bin/perl
require 'cgi-lib. рl';
print &PrintHeader;
print &HtmlTop ("My Web Page");
Після опису початку сторінки остання розмітка HTML (у тому числі форми) створюється шляхом безпосереднього виведення тегів. Наприклад, ось так задається заголовок <Н1>:
print "<CENTER><H1>Hello!</H1></CENTER>";
Аби прочитати дані, передані CGI-сценарию, використовується підпрограма ReadParse. Вона створює хэш (зазвичай званий %in) і записує в нього значення елементів даних, переданих сценарію. Елементи даних адресуються по іменах, привласнених відповідних елементах HTML. Наприклад, наступний код створює хэш %in і, читаючи дані текстового поля 'text', виводить їх:
&ReadParse(*in);
print "Here is the text: <EM>" $in('text'), "</EM>.";
Аби завершити Web-сторінку мітками HTML </BODY> і </HTML>, можна використовувати підпрограму HtmlBot (вона просто повертає рядок "</BODY>\n</HTML>\n"):
print &HtmlBot;
Ось так, коротко, і працює cgi-lib.pl.
Дата добавления: 2016-04-02; просмотров: 506;