Web-инжиниринг

       

Isact


Вызов скрипта через атрибут action   

Атрибут action в контейнер ISINDEX был введен компанией Microsoft по аналогии с одноименным атрибутом в HTML-формах. Action позволяет указать имя скрипта, который будет обрабатывать запрос непосредственно в контейнере ISINDEX. На первый взгляд этот способ указания поисковой программы проще, чем реализация через SSI. Но практика разработки и опубликования интерфейсных страниц делает оба способа с точки зрения трудоемкости равноценными.

Дело в том, что и поисковый шаблон и результаты поиска должны отображаться на одной странице. В способе SSI это достигается за счет включения скрипта внутрь документа, т.е. прямое совмещение HTML-документа и результатов поиска, которые подставляются вместо скрипта. При использовании атрибута action скрипт загрузит новую страницу.

В этом случае поступают следующим образом: скрипт генерирует точную копию страницы, будто бы она хранится в файловой системе сервера:

#!/usr/local/bin/perl

print "Content-type: text/html\n";

print "Pragma: no-cache\n\n";

print "<html><head>";

print "<isindex prompt=\"Keywords\" action=isact.cgi>";

print "</head><body>";

print "<h1>Test ISINDEX</h1><hr>";

if(length($ENV{"QUERY_STRING"})==0)

 {

  die;

 }

$str = "grep ".$ENV{QUERY_STRING}." \* \|";

open OUT, $str;

while(<OUT>)

 {

  print $_,"<br>";

 }



close OUT;

print "</body></html>";

Cкрипт в атрибуте action вызывает сам себя. В качестве базового адреса здесь используется адрес самого скрипта. В принципе такой скрипт можно замаскировать под HTML-документ, если разместить файл с расширением htm или html в стандартной директории скриптов или реализовать через модуль rewrite преобразование адреса. Более жизненные примеры требуют анализа входного запроса и разбора отклика поискового скрипта.

далее...



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