Лістинг 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; просмотров: 495;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.