Использование технологий WWW для доступа к базам данных

       

Написание модулей CGI


Язык Perl очень широко используется при написании исполняемых модулей

CGI (Common Gateway Interface) для Web.

Это обусловлено прежде всего тем, что Perl предоставляет разработчикам

простые и удобные средства обработки текста и взаимодействия с базами

данных. Наша цель - лишь дать пример

использования Perl для написания CGI-модуля.

Рассмотрим простую подпрограмму разбора входного потока CGI-программы

(при передаче параметров используется метод POST ).

#!/usr/local/bin/perl

sub Print {

$len = 100;

$buf = "";

read(STDIN, $buf,$len);

# считываем из стандартного потока ввода

# в переменную $buf количество символов

# $len



@ar = split(/[&=]/,$buf);

# разбиваем строку в массив строк,

# разделителями служат & и =.

$output = "Content-type: text/html\n\n

# посылает тип MIME передаваемого документа

<HTML><HEAD><TITLE>Result</TITLE></HEAD>

<BODY BGCOLOR=\"#FFAAAA\">

<H1>Hi there</H1><HR><BR>";

$i = 0;

while ($i <= $#ar) {

$ar[$i] =~ s/\+/ /g;

# заменяем в элементах массива + на пробел

$output .= "$ar[$i]\n";

# конкатенация переменной $output с

# элементом массива

$i++; }

$output .="<HR></BODY></HTML>";

# завершаем HTML страницу

print $output;

}

eval &Print;

# выполняем подпрограмму осуществляющую

# считывание, обработку и вывод информации

В данном примере был проиллюстрирован случай считывания параметров из входного

потока.

Если параметры передаются CGI-модулю в командной строке, то они помещаются в служебный

массив @ARGV. Например, если параметры пишуться в URL:

http://www.host.ru/cgi-bin/name.cgi?123+resource+time+12 .

Как видно из примера, написать CGI-модуль на Perl совсем не сложно. Существуют также

различные модули для облегчения написания CGI. Документацию по ним и сами модули доступны на сервере



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