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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Vasilii Piskunov                     2:5069/20.7    28 May 2001  19:31:53
 To : All
 Subject : Неработает скрипт на апаче :Е
 -------------------------------------------------------------------------------- 
 
 [SKIP]  ;= )
 
 Посмотрите плиз, и скажите рабочий он или нет (в мыльницу).
 ========
 #!/usr/bin/perl
 
 #########################################
 #     Copyright    WM   2000            #
 #     Все права зашищены(2000).         #
 #     Chat v.1             #
 #     По всем вопросам - Миша           #
 #     email: smisha@mail.ru             #
 #     url: http://cgi.superbest.net     #
 #########################################
 
 $chat_name = "Чат CGI-BIN"; # название чата
 $update = "10"; # через сколько секунд должно обновляться окно
 $chat_window_bg = "#ffffff"; # фон страницы, где выводятся записи
 $options_window_bg = "#ffffff"; # фон страницы, где вы пишите сообщение
 $show_mes = 30; # показывать сообещний(1-100)
 $killtags = 1; # убивать теги
 
 $temp=$ENV{'QUERY_STRING'};
 @pairs=split(/&/,$temp);
 foreach $item(@pairs) {
   ($key,$content)=split (/=/,$item,2);
   $content=~tr/+/ /;
   $content=~ s/%(..)/pack("c",hex($1))/ge;
   $FORM{$key}=$content;
 }
 
 if($killtags eq 1) {
   $FORM{'chat'} =~ s/</</g;
   $FORM{'chat'} =~ s/>/>/g;
   $FORM{'nick'} =~ s/</</g;
   $FORM{'nick'} =~ s/>/>/g;
 }
 
 $timeout = time;
 
 open (LOG,"+<log.txt");
 flock(LOG,2);
 @log = <LOG>;
 
 foreach $log (@log) {
   @log_params = split(/\|\|/,$log);
   $timelog = $timeout - $log_params[2];
   if ($timelog > 150) {
    $log = "";
    open(CHAT,"chat.txt");
    flock(CHAT,2);
    @chat = <CHAT>;
    close(CHAT);
    $str = "||Системное сообщение||black||<i>$log_params[1] вышел из
 чата.</i>||\n";
    push(@chat,$str);
    $chat_many = @chat;
    if ($chat_many > 99) {$chat[0] = "";}
   
    open(CHAT,">chat.txt");
    flock(CHAT,2);
    print CHAT @chat;
    close(CHAT);
   }
   $a++;
 }
 
 seek (LOG, 0, 0);
 truncate (LOG,0);
 print LOG @log;
 close (LOG);
 
 $link = "<a href=http://cgi.superbest.net target=_top><img
 src=http://cgi.superbest.net/images/litlogo.gif width=88 height=31 border=0
 alt=\"Бесплатные cgi скрипты\"></a>";
 
 if($ENV{'QUERY_STRING'} eq '') {&login;}
 elsif($FORM{'action'} eq 'enter') {&enter;}
 elsif($FORM{'action'} eq 'chat') {&chat;}
 elsif($FORM{'action'} eq 'options') {&options;}
 
 sub login {
 
   print "Content-Type: text/html\n\n";
   print "<html>\n";
   print "<head>\n";
   print "<title>$chat_name</title>\n";
   print "<style>\n";
   print "INPUT, SELECT, BODY, TD {font-family: Tahoma; font-size: 11}\n";
   print "</style>\n";
   print "</head>\n";
   print "<body>\n";
   print "<center>\n";
   print "<font face=Tahoma size=2>Введите пожалуйста ваш ник, чтобы войти в чат 
 $chat_name.\n";
   print "<table>\n";
   print "<form action=chat.cgi method=GET>\n";
   print "<tr><td>Hик:</td><td><input type=hidden name=action value=enter><input 
 type=text name=nick size=10></td></tr>\n";
   print "<tr><td>Цвет:</td><td><select name=color>";
   print "<option value=black>черный</option>";
   print "<option value=green>зеленый</option>";
   print "<option value=yellow>желтый</option>";
   print "<option value=blue>голубой</option>";
   print "<option value=red>красный</option>";
   print "</select></td></tr>";
   print "<tr><td colspan=2><input type=submit value=Войти></td></tr>\n";
   print "</form></table></font>\n";
   print "</center>\n";
   print "</body>\n";
   print "</html>\n";
 
   exit;
 
 }
 
 sub enter {
 
   if ($FORM{'nick'} eq '') { &error('Вы не ввели свой ник.'); }
   $nick = $FORM{'nick'};
   $time = time;
 
   open(LOG,"log.txt");
   @log = <LOG>;
   foreach $log (@log) {
    if($log =~ /^\|\|$nick\|\|/) {
       $found = 1;  
    }
   }
   close(LOG);
   if (!($found)) { 
    open(LOG,">>log.txt");
    print LOG "||$nick||$time||\n";
    close(LOG);
    open(CHAT,"chat.txt");
    flock(CHAT,2);
    @chat = <CHAT>;
    close(CHAT);
    $str = "||Системное сообщение||black||<i>$FORM{'nick'} вошел в чат.</i>||\n";
    push(@chat,$str);
    $chat_many = @chat;
    if ($chat_many > 99) {$chat[0] = "";}
   
    open(CHAT,">chat.txt");
    flock(CHAT,2);
    print CHAT @chat;
    close(CHAT);
   }
 
   print "Content-Type: text/html\n\n";
   print "<html>\n";
   print "<head>\n";
   print "<title>$chat_name</title>\n";
   print "</head>\n";
   print "<frameset rows=\"*,70\" border=0 frameborder=0>\n";
   print "<frame name=\"chat\" noresize
 src=\"chat.cgi?nick=$nick&action=chat\">\n";
   print "<frame name=\"options\"
 src=\"chat.cgi?nick=$nick&action=options&color=$FORM{'color'}\">\n";
   print "<noframes>\n";
   print "<body>\n";
   print "<font face=Tahoma size=2>К сожалению, ваш браузер не поддерживает
 фреймы, необходимые для общения.</font>\n";
   print "</body>\n";
   print "</noframes>\n";
   print "</frameset>\n";
   print "</html>\n";
 
   exit;
 
 }
 
 sub chat {
 
   &update;
   open(LOG,"log.txt");
   @members = <LOG>;
   close(LOG);
 
   foreach $member (@members) {
    @member_params = split(/\|\|/,$member);
    push(@online,$member_params[1]);
   }
 
   open(CHAT,"chat.txt");
   @chat = <CHAT>;
   close(CHAT);
 
   @chat = reverse @chat;
 
   $end = $show_mes - 1;
   $end = @chat - 1 if scalar(@chat) < 30;
 
   foreach $chat (@chat[0..$end]) {
    @chat_params = split(/\|\|/,$chat);
    $str = "$chat_params[1]: <font color=$chat_params[2]>$chat_params[3]</font>";
    push(@text_chat,$str);
   }
 
   print "Content-Type: text/html\n\n";
   print "<html>\n";
   print "<head>\n";
   print "<meta http-equiv=\"Refresh\" CONTENT=\"$update\;
 URL=chat.cgi?action=chat\&nick=$FORM{'nick'}\">";
   print "<style>\n";
   print "BODY {font-family: Tahoma; font-size: 12}\n";
   print "</style>\n";
   print "</head>\n";
   print "<body bgcolor=$chat_window_bg>\n";
   print "<b>в On-line'е: ";
   foreach (@online) {
    print "$_, ";
   }
   print "</b><br>\n";
   print "<br>\n";
   foreach $str (@text_chat) {
    print "$str\n<br>\n";
   }
   print "</body>\n";
   print "</html>\n";
 
   exit;
 
 }
 
 sub options {
 
   &update;
   if($FORM{'chat'} ne '') {
    open(CHAT,"chat.txt");
    flock(CHAT,2);
    @chat = <CHAT>;
    close(CHAT);
    $str = "||$FORM{'nick'}||$FORM{'color'}||$FORM{'chat'}||\n";
    push(@chat,$str);
    $chat_many = @chat;
    if ($chat_many > 99) {$chat[0] = "";}
   
    open(CHAT,">chat.txt");
    flock(CHAT,2);
    print CHAT @chat;
    close(CHAT);
   }
 
   print "Content-Type: text/html\n\n";
   print "<html>\n";
   print "<head>\n";
   print "<style>\n";
   print "INPUT, SELECT {font-family: Tahoma; font-size: 11}\n";
   print "</style>\n";
   print "</head>\n";
   print "<body bgcolor=$options_window_bg>\n";
   print "<center>\n";
   print "<form action=chat.cgi method=GET>\n";
   print "<input type=hidden name=action value=options>";
   print "<input type=hidden name=nick value=$FORM{'nick'}>";
   print "<input type=text name=chat size=45>";
   print "<input type=hidden name=color value=$FORM{'color'}>";
   print "<input type=submit value=Сказать><br>$link\n";
   print "</form></font>\n";
   print "</center>\n";
   print "</body>\n";
   print "</html>\n";
 
   exit;
 
 }
 
 sub update {
 
   open (LOG,"+<log.txt");
   flock(LOG,2);
   @log = <LOG>;
 
   $a=0;
   foreach (@log) {
    @log_params = split(/\|\|/,$log[$a]);
    if ($log_params[1] eq $FORM{'nick'}) {
       $log_params[2] = time;
       $log[$a] = join("\|\|",@log_params);
       }
    $a++;
    }
 
   seek (LOG, 0, 0);
   truncate (LOG,0);
   print LOG @log;
   close (LOG);
 
 }
 
 sub error {
 
 $err = $_[0];
  
   print "Content-Type: text/html\n\n";
   print "<html>\n";
   print "<head>\n";
   print "<title>$chat_name ошибка</title>\n";
   print "<style>\n";
   print "BODY {font-family: Tahoma; font-size: 11}\n";
   print "</style>\n";
   print "</head>\n";
   print "<body>\n";
   print "<center>\n";
   print "<font size=2 face=Tahoma>$err</font>\n";
   print "</center>\n";
   print "</body>\n";
   print "</html>\n";
 
   exit;
 
 }
 
 --- WP/95 Rel 1.78E (215.0) Reg.
  * Origin: Кто не курит и не пьет, скоро в армию пойдет.(с) Я (2:5069/20.7)
 
 

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

 Тема:    Автор:    Дата:  
 Неработает скрипт на апаче :Е   Vasilii Piskunov   28 May 2001 19:31:53 
 Неработает скрипт на апаче :Е   Sergey Golubitsky   07 Jun 2001 23:30:49 
 Re: Неработает скрипт на апаче :Е   Vasilii Piskunov   09 Jun 2001 23:01:07 
 Неработает скрипт на апаче :Е   Sergey Golubitsky   12 Jun 2001 22:59:34 
 Re: еработает скрипт на апаче :Е   Artem Chuprina   13 Jun 2001 10:49:41 
 Re: еработает скрипт на апаче :Е   Pavel Reich   12 Jun 2001 21:31:45 
 Re^2: еработает скрипт на апаче :Е   Vasilii Piskunov   14 Jun 2001 23:45:32 
 Re: Re^2: еработает скрипт на апаче :Е   Artem Chuprina   14 Jun 2001 11:58:42 
 Re^2: Re^2: еработает скрипт на апаче :Е   Vasilii Piskunov   15 Jun 2001 23:56:18 
 еpаботает скpипт на апаче :Е   Slava Korchagin   16 Jun 2001 14:31:28 
 Re^2: Re^2: еработает скрипт на апаче :Е   Pavel V. Reich   17 Jun 2001 14:14:45 
 Moderatorial [+] (Re: еработает скрипт на апаче :Е)   Comoderator of RU.CGI.PERL   13 Jun 2001 10:41:33 
Архивное /ru.cgi.perl/27897c756b05.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional