home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 May / 05_02.iso / software / mhtmls / MagicHTMLStudio.exe / Disk1 / data1.cab / Program_Files / CGI / Guest / gb.pl < prev    next >
Encoding:
Perl Script  |  2002-03-06  |  6.2 KB  |  245 lines

  1. #!/usr/bin/perl
  2. $mess=15;
  3. $filename="data.blt";
  4. $filehdr="header.blt";
  5. $fileend="end.blt";
  6.  
  7.  
  8. @months = ('01','02','03','04','05','06','07','08','09','10','11','12');
  9. @days = ('Su','Mo','Tu','We','Th','Fr','St');
  10. $color="green";
  11. $add=0;
  12.  
  13. if ($ENV{'REQUEST_METHOD'} eq "POST")
  14.     {
  15.       read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'});
  16.     }
  17. else
  18.     {
  19.       $bufer=$ENV{'QUERY_STRING'};
  20.     }
  21.  
  22. @pairs = split(/&/, $bufer);
  23. foreach $pair (@pairs)
  24.       {
  25.         ($name, $value) = split(/=/, $pair);
  26.         $name =~ tr/+/ /;
  27.         $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  28.         $value =~ tr/+/ /;
  29.         $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  30.  
  31.         $FORM{$name} = $value;
  32.       }
  33.  
  34. $action=$FORM{action};
  35. $page=$FORM{page};
  36.  
  37.  
  38. &html;
  39. if ($action eq "add"){&add;}
  40. open(GB, "$filename");
  41. @DATA=<GB>;
  42. close (GB);
  43.  
  44. $allmess = @DATA;
  45. $pageend=$page+$mess-1;
  46. &forma;
  47. &show;
  48. &glos;
  49. &htmlend;
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57. sub add
  58.  
  59. {
  60.     ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
  61.     $year+=1900;
  62.     $pdata="[$days[$wday] $hour:$min - $mday/$months[$mon]/$year]";
  63.  
  64.  
  65.     $name=$FORM{name};
  66.     if($name eq "")
  67.       {
  68.           &error;
  69.       }
  70.     $FORM{'text'} =~ s/\n/<br>/g;
  71.     $text=$FORM{text};
  72.     if($text eq "")
  73.       {
  74.           &error;
  75.       }
  76.     if($text eq "")
  77.       {
  78.           &error;
  79.       }
  80.  
  81.     if ($FORM{mail} ne "")
  82.          {
  83.             $mail=$FORM{mail};
  84.           }
  85.     else
  86.           {
  87.               $mail="0";
  88.           }
  89.  
  90.     if ($FORM{url} ne "")
  91.          {
  92.             $url=$FORM{url};
  93.           }
  94.     else
  95.           {
  96.               $url="0";
  97.           }
  98.  
  99.     if ($FORM{city} ne "")
  100.          {
  101.             $city=$FORM{city};
  102.           }
  103.     else
  104.           {
  105.               $city="0";
  106.           }
  107.  
  108.  
  109.  
  110.     $STRING = join("::",$name,$mail,$url,$pdata,$city,$text,"0");
  111.  
  112.     open(GB, "+<$filename") || open(GB, ">$filename");
  113.       @DATA=<GB>;
  114.  
  115.               @DATA=("$STRING\n",@DATA);
  116.               seek(GB,0,0);
  117.               print GB @DATA;
  118.               close (GB);
  119. }
  120.  
  121.  
  122.  
  123.  
  124. sub forma
  125.  
  126.   {
  127.       print <<FORMA;
  128.          <center><font size=3 >Leave your message</font><br><br>
  129.          <table border=0 cellpadding=0 cellspacing=0 width=400>
  130.          <form method="POST" action="gb.pl">
  131.          <input type="hidden"  name="action" value=add>
  132.          <input type="hidden"  name="page" value=0>
  133.         <tr><td align=center>Name*: </td><td><input type="text" size="39" name="name" class=fnt maxlength=50></td></tr>
  134.         <tr><td align=center>E-mail: </td><td><input type="text" size="39" name="mail" maxlength=100></td></tr>
  135.         <tr><td align=center>Web-page: <font size=-3>http://</font></td><td><input type="text" size="39" name="url" maxlength=150></td></tr>
  136.         <tr><td align=center>City: </td><td><input type="text" size="39" name="city" maxlength=50></td></tr>
  137.         <tr><td align=center valign=top>Comment*: </td><td><textarea name="text" class=fnt rows="4" cols="40" maxlength=1000></textarea></td></tr>
  138.         <tr><td align=center> </td><td><input
  139.         type="reset" name="B2" value="Clear" class=bt>
  140.         <input type="submit" name="B1" class=bt value="Send">
  141.         </td></tr>
  142.     </form></table></center>
  143.     <br><br><br><br>
  144. FORMA
  145.   }
  146.  
  147.  
  148. sub show
  149.  
  150.   {
  151.       print "<center><table border=0 cellpadding=0 cellspacing=0 width=400>";
  152.       for($i=$page;$i<=$pageend;$i++)
  153.         {
  154.           ($name,$mail,$url,$tim,$city,$text2,$answer) = split(/::/,$DATA[$i]);
  155.            if($name ne "")
  156.              {
  157.  
  158.                print "<tr><td align=left><font size=2 face=Tahoma><b>$name</b>";
  159.                if($city ne "0"){print " ($city)";}
  160.                print "</font><br>";
  161.              if ($mail ne "0")
  162.                {
  163.                        print "<a href=\"mailto:$mail\" class=a><font size=2 >$mail</font></a><br>";
  164.                }
  165.              if($url ne "0")
  166.                {
  167.                    print "<a href=\"http://$url\" class=a><font size=2 >$url</font><br>";
  168.                }
  169.  
  170.                $text2 =~ s/:-\)/<img src=smile1.gif border=>/g;
  171.                $text2 =~ s/:-\|/<img src=smile3.gif border=>/g;
  172.                $text2 =~ s/:-\(/<img src=smile2.gif border=>/g;
  173.                $text2 =~ s/:\)/<img src=smile1.gif border=>/g;
  174.                $text2 =~ s/:\|/<img src=smile3.gif border=>/g;
  175.                $text2 =~ s/:\(/<img src=smile2.gif border=>/g;
  176.              print "</td></tr><tr><td>$text2</td></tr><tr>
  177.                         <td align=right><font size=2 face=Tahoma>$tim
  178.                         </td></tr>";
  179.             if($answer ne "0\n")
  180.               {
  181.                      $answer =~ s/:-\)/<img src=smile1.gif border=>/g;
  182.                    $answer =~ s/:-\|/<img src=smile3.gif border=>/g;
  183.                    $answer =~ s/:-\(/<img src=smile2.gif border=>/g;
  184.                    $answer =~ s/:\)/<img src=smile1.gif border=>/g;
  185.                    $answer =~ s/:\|/<img src=smile3.gif border=>/g;
  186.                    $answer =~ s/:\(/<img src=smile2.gif border=>/g;
  187.                   print "<tr><td> Answer: $answer</td></tr>";
  188.               }
  189.             print "<tr><td><br><br><br><br></font></td></tr>";
  190.           }
  191.         }
  192.         print "</table></center>";
  193.   }
  194.  
  195.  
  196. sub glos
  197.   {
  198.       print "<center>";
  199.       $all = int($allmess / $mess)+1;
  200.       print "| ";
  201.       for($i=1;$i <= $all;$i++)
  202.         {
  203.             $to=$i*$mess-$mess;
  204.             $a=$page/10+1;
  205.             if($a ne $i)
  206.               {print " <a href=gb.pl?page=$to class=a>$i</a> |";}
  207.             else
  208.               {print " $i |";}
  209.         }
  210.       print "</center>";
  211.   }
  212.  
  213. sub html
  214.   {
  215.       print "Content-type: text/html\n\n";
  216.  
  217.     open (HEADER,"$filehdr");
  218.       while (<HEADER>)
  219.         {print "$_";}
  220.       close (HEADER);
  221.   }
  222.  
  223.  
  224. sub htmlend
  225.   {
  226.       print "<center><br>Total messages - $allmess";
  227.       print "";
  228.       print "";
  229.       open (SOF,"$fileend");
  230.       while (<SOF>)
  231.         {print "$_";}
  232.       close (SOF);
  233.   }
  234.  
  235.  
  236. sub error
  237.   {
  238.       print "Content-type: text/html\n\n";
  239.     print "<html><head><title>$title</title>";
  240.     print "<b>Fields: \"NAME\" and \"COMMENT\" are mandatory for filling.</b>";
  241.     print "</body></html>";
  242.     exit;
  243.   }
  244.  
  245.