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

  1. #!/usr/bin/perl
  2. $login="111";
  3. $pass="222";
  4. $mess=15;
  5. $filename="data.blt";
  6. $filehdr="header.blt";
  7. $fileend="end.blt";
  8.  
  9. $page=0;
  10.  
  11. if ($ENV{'REQUEST_METHOD'} eq "POST")
  12.     {
  13.       read(STDIN, $bufer, $ENV{'CONTENT_LENGTH'});
  14.     }
  15. else
  16.     {
  17.       $bufer=$ENV{'QUERY_STRING'};
  18.     }
  19.  
  20. @pairs = split(/&/, $bufer);
  21. foreach $pair (@pairs)
  22.       {
  23.  
  24.             ($name, $value) = split(/=/, $pair);
  25.             $name =~ tr/+/ /;
  26.             $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  27.             $value =~ tr/+/ /;
  28.             $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  29.  
  30.             $FORM{$name} = $value;
  31.       }
  32.  
  33. $action=$FORM{action};
  34. if ($FORM{page} ne "")
  35.   {$page=$FORM{page};}
  36.  
  37.  
  38.  
  39. &html;
  40.  
  41. &readdata;
  42. if($bufer eq ""){&showpass;}
  43. if($action eq "Edit"){&edit;}
  44. elsif($action eq "checkpass"){&checkpass;}
  45. elsif($action eq "Delete"){&delet;}
  46. elsif($action eq "Ready"){&addedit;}
  47. &htmlend;
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. sub checkpass
  57.   {
  58.       if($FORM{login} eq $login && $FORM{pass} eq $pass)
  59.          {
  60.           &show;
  61.         &glos;
  62.         }
  63.       else
  64.         {
  65.             print "Incorrect login or password.<br><br><br>\n";
  66.             &showpass;
  67.         }
  68.   }
  69.  
  70. sub showpass
  71.   {
  72.       print "<form action=admin.pl method=GET>";
  73.       print "<table width=300 border=0>";
  74.       print "<tr><td>";
  75.       print "Enter login:<br>";
  76.       print "<input type=text size=25 name=login><br>";
  77.       print "Enter password:<br>";
  78.       print "<input type=password size=25 name=pass><br><br>";
  79.       print "<input type=hidden name=action value=checkpass>";
  80.       print "<input type=submit value=Send>";
  81.       print "</td></tr>";
  82.       print "</table></form>";
  83.       print "";
  84.       print "</center></body></html>";
  85.       exit;
  86.   }
  87.  
  88. sub addedit
  89.   {
  90.       open (ADD,"$filename");
  91.       @line=<ADD>;
  92.       close (ADD);
  93.  
  94.                  ($name,$mail,$url,$tim,$city,$text2,$answer) = split(/::/,@line[$FORM{id}]);
  95.                  if($FORM{ans} ne "")
  96.                    {
  97.                        $answer=$FORM{ans};
  98.                         $answer=~ s/\n/<br>/g;
  99.                         $answer="$answer\n";
  100.                     }
  101.                  else{$answer="0\n";}
  102.                  if($FORM{mess} ne "")
  103.                    {$FORM{mess} =~ s/\n/<br>/g;}
  104.                  else{&error;}
  105.                  if($FORM{mail} ne ""){$mail=$FORM{mail};}
  106.                  else{$mail="0";}
  107.                  if($FORM{url} ne ""){$url=$FORM{url};}
  108.                  else{$url="0";}
  109.                  if($FORM{city} ne ""){$city=$FORM{city};}
  110.                  else{$city="0";}
  111.                  if($FORM{name} eq ""){&error;}
  112.                  @line[$FORM{id}]=join("::",$FORM{name},$mail,$url,$tim,$city,$FORM{mess},$answer);
  113.  
  114.  
  115.  
  116.       open (ADD,">$filename");
  117.       for($i=0;$i<=@line;$i++)
  118.         {
  119.             print ADD "@line[$i]";
  120.         }
  121.       close (ADD);
  122.       &readdata;
  123.       &show;
  124.       &glos;
  125.   }
  126.  
  127.  
  128.  
  129. sub show
  130.  
  131.   {
  132.  
  133.       print "<br><br><u>Administration.</u><br><br>\n";
  134.       print "<table border=0 cellpadding=0 cellspacing=0 width=400>";
  135.       for($i=$page;$i<=$pageend;$i++)
  136.         {
  137.           ($name,$mail,$url,$tim,$city,$text2,$answer) = split(/::/,$DATA[$i]);
  138.            if($name ne "")
  139.              {
  140.                  print "<form action=admin.pl method=POST>";
  141.  
  142.                print "<tr><td align=left><font size=2 face=Tahoma><b>$name</b>";
  143.                if($city ne "0"){print " ($city)";}
  144.                print "</font><br>";
  145.              if ($mail ne "0")
  146.                {
  147.                        print "<a href=\"mailto:$mail\" class=a><font size=2 >$mail</font></a><br>";
  148.                }
  149.              if($url ne "0")
  150.                {
  151.                    print "<a href=\"http://$url\" class=a><font size=2 >$url</font><br>";
  152.                }
  153.  
  154.                $text2 =~ s/:-\)/<img src=smile1.gif border=>/g;
  155.                $text2 =~ s/:-\|/<img src=smile3.gif border=>/g;
  156.                $text2 =~ s/:-\(/<img src=smile2.gif border=>/g;
  157.                $text2 =~ s/:\)/<img src=smile1.gif border=>/g;
  158.                $text2 =~ s/:\|/<img src=smile3.gif border=>/g;
  159.                $text2 =~ s/:\(/<img src=smile2.gif border=>/g;
  160.              print "</td></tr><tr><td>$text2</td></tr><tr>
  161.                         <td align=right><font size=2 face=Tahoma>$tim
  162.                         </font></td></tr>";
  163.             if($answer ne "0\n")
  164.               {
  165.                      $answer =~ s/:-\)/<img src=smile1.gif border=>/g;
  166.                    $answer =~ s/:-\|/<img src=smile3.gif border=>/g;
  167.                    $answer =~ s/:-\(/<img src=smile2.gif border=>/g;
  168.                    $answer =~ s/:\)/<img src=smile1.gif border=>/g;
  169.                    $answer =~ s/:\|/<img src=smile3.gif border=>/g;
  170.                    $answer =~ s/:\(/<img src=smile2.gif border=>/g;
  171.                   print "<tr><td> Answer: $answer</td></tr>";
  172.               }
  173.             print "<tr><td align=center><input type=hidden name=id value=$i><input type=submit name=action value=Edit> <input type=submit name=action value=Delete><br><br>-----------<br><br></td></tr></form>";
  174.           }
  175.         }
  176.         print "</table>";
  177.         print "<br>Total messages - $allmess<br>";
  178.   }
  179.  
  180.  
  181. sub glos
  182.   {
  183.       $all = int($allmess / $mess)+1;
  184.       print "| ";
  185.       for($i=1;$i <= $all;$i++)
  186.         {
  187.             $to=$i*$mess-$mess;
  188.             $a=$page/10+1;
  189.             if($a ne $i)
  190.               {print " <a href=admin.pl?page=$to class=a>$i</a> |";}
  191.             else
  192.               {print " $i |";}
  193.         }
  194.   }
  195.  
  196. sub html
  197.   {
  198.       print "Content-type: text/html\n\n";
  199.  
  200.     print "<html><head><title>Administartion</title>";
  201.     print <<STYLE;
  202.     <style type="text/css">
  203.     <!--
  204.  
  205.      .in, INPUT, TEXTAREA, SELECT, RADIO {border-style: solid; border-width:1 ; font-family: Tahoma; color:black; font-size=13px;}
  206.      .gb {border-style: solid; border-width:1 ; font-family: Tahoma; color:#BA7C0A; font-size=13px;}
  207.      .bt, BUTTONS {border-color: black; background: white; color:black; font-size=11px;}
  208.      td {font-family:tahoma;font-size=13px;}
  209.      body {font-family:tahoma;background: white;font-size=14px; align=center;}
  210.      .fnt{background-color:#FFCCCC;}
  211.  
  212.      a:link {text-decoration: none; color: "black"}
  213.      a:visited {text-decoration: none;color: "black"}
  214.      a:active {text-decoration: none; color: "black"}
  215.      a:hover {text-decoration: underline; color: "black"}
  216.  
  217.      .a:link {text-decoration: none; color: "#BA7C0A"}
  218.      .a:visited {text-decoration: none;color: "#BA7C0A"}
  219.      .a:active {text-decoration: none; color: "#BA7C0A"}
  220.      .a:hover {text-decoration: underline; color: "#BA7C77"}
  221.     -->
  222.     </style>
  223.     </head>
  224.     <body>
  225. STYLE
  226.      print "<center>";
  227.   }
  228.  
  229.  
  230. sub htmlend
  231.   {
  232.  
  233.       print "";
  234.       print "";
  235.       print "</center></body></html>";
  236.  
  237.   }
  238.  
  239.  
  240. sub error
  241.   {
  242.       print "Content-type: text/html\n\n";
  243.     print "<html><head><title>GUESBTOOK</title>";
  244.     print "<b>Fields: \"NAME\" and \"COMMENT\" Are mandatory for filling.</b>";
  245.     print "</body></html>";
  246.     exit;
  247.   }
  248.  
  249. sub edit
  250.   {
  251.       ($name,$mail,$url,$tim,$city,$text2,$answer) = split(/::/,$DATA[$FORM{id}]);
  252.       print "Edit message<br><table><tr><td><form action=admin.pl method=POST>";
  253.       print " Name<br><input type=text size=20 name=name value=$name><br>";
  254.       if($city eq "0"){$city="";}
  255.       print "City <br><input type=text name=city size=20 value=$city ><br>";
  256.       if($mail eq "0"){$mail="";}
  257.       print "E-mail <br><input type=text size=20 name=mail value=$mail><br>";
  258.       if($url eq "0"){$url="";}
  259.       print "Web-page <br><input size=20 type=text name=url value=$url><br>";
  260.       $text2 =~ s/<br>/\n/g;
  261.       print "Message <br><textarea name=mess rows=5 cols=35>$text2</textarea><br>";
  262.       if($answer eq "0\n"){$answer="";}
  263.       else{$answer =~ s/<br>/\n/g;}
  264.       print "Answer: <br><textarea name=ans rows=5 cols=35>$answer</textarea><br>";
  265.  
  266.       print "<input type=hidden name=id value=$FORM{id}><input type=submit value=Ready name=action>";
  267.       print "</form></td></tr></table>";
  268.  
  269.  
  270.   }
  271.  
  272. sub delet
  273.   {
  274.       open (NEW,">zman.blt");
  275.       open (OLD,"$filename");
  276.     $i=0;
  277.       while (<OLD>)
  278.         {
  279.  
  280.             if($i ne $FORM{id})
  281.               {
  282.                   print NEW $_;
  283.               }
  284.             $i++;
  285.         }
  286.  
  287.     close(OLD);
  288.     close(NEW);
  289.     rename($filename,"old.bak");
  290.     rename("zman.blt",$filename);
  291.     print "The message is erased";
  292.     &readdata;
  293.     &show;
  294.     &glos;
  295.   }
  296.  
  297. sub readdata
  298.   {
  299.  
  300.     open(GB, "$filename");
  301.     @DATA=<GB>;
  302.     close (GB);
  303.  
  304.     $allmess = @DATA;
  305.     $pageend=$page+$mess-1;
  306.  
  307.   }
  308.  
  309.