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 преобразование адреса. Более жизненные примеры требуют анализа входного запроса и разбора отклика поискового скрипта.
далее...