Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Yaroslav A Kulikov                   2:5036/32.13   15 Mar 2001  20:45:17
 To : All
 Subject : [script] Hекорректная работа
 -------------------------------------------------------------------------------- 
 
 
 Имеется скрипт, который работает, но очень плохо: выкладываю на сайт и он
 выводит все, что  только есть вместо того, чтобы вывести необходимое.
 
 Как мне это можно исправить(исходный код внизу)?
 
 files.lst - файл, содержащий имена файлов, в которых нужно искать.
 *.cth - файлы текстового формата, в которых производится поиск.
 *.html - шаблоны выводимой страницы.
 
 Скрипт не работает здесь: http://cleverth.bos.ru/cgi-bin/search.cgi
 ДДД Тут начинается файл search.cgi ДДД
 #!e:/language/perl/bin/perl -w
 
 #   Ярослав Алексеевич Куликов, 2000
 #   Почта: owlet@stu.lipetsk.ru
 #   Hаписано специально для http://cleverth.bos.ru
 
 use locale;
 
 read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
 @pairs = split(/&/, $buffer);
 foreach $pair (@pairs)
 {
     ($name, $value) = split(/=/, $pair);
     $value =~ tr/+/ /;
     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
     $value =~ s/<!--(.|\n)*-->//g;
     $value =~ s/<([^>]|\n)*>//g;
     $FORM{$name} = $value;
 }
 $FORM{string} ||= "дурак";
 $FORM{string} =~ s{\\.|\W}{}g; #удаляю все символы, кроме букв, цифр и "_"
 $FORM{string} =~ s{_}{*, *};
 
 open( FN, "../misc/files.lst" ) or die;
 @filenames = <FN>;
 close( FN );
 
 print "Content-type: text/html \n\n";
 print qq{<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\n\n};
 open( HEAD, "../misc/header.html" );
 while( <HEAD> ) { print; }
 close( HEAD );
 print qq{<table width="100%" border=0 cellpadding=0 cellspacing=10>\n <tr>\n
 <td width="155" valign="top">};
 open ( TEMP, "../misc/mainmenu.html" );
 while( <TEMP> ) { print; }
 close ( TEMP );
 print qq{<br><center>};
 open ( TEMP, "../misc/all.counter" );
 while( <TEMP> ) { print; }
 close ( TEMP );
 print qq{</center></td>\n  <td valign="top">};
 open ( TEMP, "../misc/menu.html" );
 while( <TEMP> ) { print; }
 close ( TEMP );
 $flag = 0;
 $hflag = 0;
 $FORM{string} =~ s{\*, \*}{\|};
 foreach $filename (@filenames)
 {
     $filename = "../misc/".$filename;
     open( DATAFILE, $filename );
     $header = <DATAFILE>;
     while( <DATAFILE> )
     {
         chomp;
         if ( m{.*$FORM{string}}i )
         {
             $flag = 1;
                         if ( $hflag == 0 )
                         {
                             print qq{   <p class="header">$header</p>\n};
                                 $hflag = 1;
                         }
             ( $phrase, $author ) = split m{\|};
             print qq{   <p>   <img border=0 width=21 height=18
 src="/images/dot1.gif" alt="*" align="middle"> $phrase};
             if ( $author ) { print qq{($author)}; }
             print qq{</p>\n};
         }
     }
         $hflag = 0;
     close( DATAFILE );
 }
 print qq{<br>\n   <p align="center" style="text-align:center;">};
 if ( $flag == 0 ) { print qq{К сожалению, ничего найти не удалось. }; }
 print qq{Попробуйте <a href="/search.shtml" title="Hайти афоризмы"
 target="_self">поискать еще</a></p>};
 open ( TEMP, "../misc/menu.html" );
 while( <TEMP> ) { print; }
 close ( TEMP );
 print qq{  </td>\n </tr>\n</table>};
 open( FOOT, "../misc/footer.html" );
 while( <FOOT> ) { print };
 close( FOOT );
 ДДД А здесь search.cgi кончается ДДД
                 C уважением, Yaroslav A. Kulikov.
 --- УТВЕРЖДАЮ. MSG-редактор капитан 2.5 ранга Голд Дедович фор ДОС UNREG
  * Origin: Такие вопросы с кандачка не решаются! (2:5036/32.13)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 [script] Hекорректная работа   Yaroslav A Kulikov   15 Mar 2001 20:45:17 
Архивное /ru.cgi.perl/32863ab0f1a2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional