home *** CD-ROM | disk | FTP | other *** search
/ Internet 1996 World Exposition / park.org.s3.amazonaws.com.7z / park.org.s3.amazonaws.com / Guests / Beethoven / CGI / counter.cgi < prev    next >
Text File  |  2017-09-21  |  4KB  |  319 lines

  1. #!/usr/local/bin/perl
  2.  
  3.  
  4.  
  5. #Counter CGI script.
  6.  
  7. #For Multimedia Beethoven WebSite.
  8.  
  9. #(C) Copyright by Alex Bronshtein, 1996.
  10.  
  11.  
  12.  
  13.  
  14.  
  15. $change = 1000;
  16.  
  17. $param = 0;
  18.  
  19. $reslt = 0;
  20.  
  21.  
  22.  
  23. sub floor {
  24.  
  25.   if (($param >= 0) && ($param <= 1)) { $reslt = 0; }
  26.  
  27.   if (($param >= 1) && ($param <= 2)) { $reslt = 1; }
  28.  
  29.   if (($param >= 2) && ($param <= 3)) { $reslt = 2; }
  30.  
  31.   if (($param >= 3) && ($param <= 4)) { $reslt = 3; }
  32.  
  33.   if (($param >= 4) && ($param <= 5)) { $reslt = 4; }
  34.  
  35.   if (($param >= 5) && ($param <= 6)) { $reslt = 5; }
  36.  
  37.   if (($param >= 6) && ($param <= 7)) { $reslt = 6; }
  38.  
  39.   if (($param >= 7) && ($param <= 8)) { $reslt = 7; }
  40.  
  41.   if (($param >= 8) && ($param <= 9)) { $reslt = 8; }
  42.  
  43.   if (($param >= 9) && ($param < 10)) { $reslt = 9; }
  44.  
  45. }
  46.  
  47.  
  48.  
  49. if (($ARGV [0] > 0) && ($ARGV [0] <= 10)) {
  50.  
  51.   $change = $ARGV [0];
  52.  
  53.  }
  54.  
  55. else {
  56.  
  57.   if (($ARGV [1] > 0) && ($ARGV [1] <= 10)) {
  58.  
  59.     $change = $ARGV [1];
  60.  
  61.    }
  62.  
  63.   else {
  64.  
  65.     if (($ARGV [2] > 0) && ($ARGV [2] <= 10)) {
  66.  
  67.       $change = $ARGV [2];
  68.  
  69.      }
  70.  
  71.     else {
  72.  
  73.       if (($ARGV [3] > 0) && ($ARGV [3] <= 10)) {
  74.  
  75.         $change = $ARGV [3];
  76.  
  77.        }
  78.  
  79.       else {
  80.  
  81.         if (($ARGV [4] > 0) && ($ARGV [4] <= 10)) {
  82.  
  83.           $change = $ARGV [4];
  84.  
  85.          }
  86.  
  87.         else {
  88.  
  89.           $change = 1000;
  90.  
  91.          }
  92.  
  93.        }
  94.  
  95.      }
  96.  
  97.    }
  98.  
  99.  }
  100.  
  101.  
  102.  
  103.  
  104.  
  105. open (COUNT, "counter");   
  106.  
  107. $counter = <COUNT>;        
  108.  
  109.  
  110.  
  111. if ($change eq 1) {
  112.  
  113.   ++$counter;
  114.  
  115.   open (COUNT, ">counter");  # open "countf" for 'output'
  116.  
  117.   print COUNT "$counter\n";  
  118.  
  119.   close (COUNT);               # close file
  120.  
  121.  }
  122.  
  123.  
  124.  
  125. @dig [10];
  126.  
  127. $dig [1] = 0;
  128.  
  129. $dig [2] = 0;
  130.  
  131. $dig [3] = 0;
  132.  
  133. $dig [4] = 0;
  134.  
  135. $dig [5] = 0;
  136.  
  137. $size = 0;
  138.  
  139.  
  140.  
  141. if (($counter >= 0) && (counter < 10)) {
  142.  
  143.   $dig [1] = $counter;
  144.  
  145.   $size = 1;
  146.  
  147.  }
  148.  
  149. if (($counter >= 10) && (counter < 100)) {
  150.  
  151.   $param = $counter / 10;
  152.  
  153.   &floor;
  154.  
  155.   $dig [1] = $reslt;
  156.  
  157.   $dig [2] = $counter % 10;
  158.  
  159.   $size = 2;
  160.  
  161.  }
  162.  
  163. if (($counter >= 100) && (counter < 1000)) {
  164.  
  165.   $param = $counter / 100;
  166.  
  167.   &floor;
  168.  
  169.   $dig [1] = $reslt;
  170.  
  171.   $param = ($counter % 100) / 10;
  172.  
  173.   &floor;
  174.  
  175.   $dig [2] = $reslt;
  176.  
  177.   $dig [3] = (($counter % 100) % 10);
  178.  
  179.   $size = 3;
  180.  
  181.  }
  182.  
  183. if (($counter >= 1000) && (counter < 10000)) {
  184.  
  185.   $param = $counter / 1000;
  186.  
  187.   &floor;
  188.  
  189.   $dig [1] = $reslt;
  190.  
  191.   $param = ($counter % 1000) / 100;
  192.  
  193.   &floor;
  194.  
  195.   $dig [2] = $reslt;
  196.  
  197.   $param = (($counter % 1000) % 100) / 10;
  198.  
  199.   &floor;
  200.  
  201.   $dig [3] = $reslt;
  202.  
  203.   $dig [4] = (($counter % 1000) % 100) % 10;
  204.  
  205.   $size = 4;
  206.  
  207.  }
  208.  
  209. if (($counter >= 10000) && (counter < 100000)) {
  210.  
  211.   $param = $counter / 10000;
  212.  
  213.   &floor;
  214.  
  215.   $dig [1] = $reslt;
  216.  
  217.   $param = ($counter % 10000) / 1000;
  218.  
  219.   &floor;
  220.  
  221.   $dig [2] = $reslt;
  222.  
  223.   $param = (($counter % 10000) % 1000) / 100;
  224.  
  225.   &floor;
  226.  
  227.   $dig [3] = $reslt;
  228.  
  229.   $param = ((($counter % 10000) % 1000) % 100) / 10;
  230.  
  231.   &floor;
  232.  
  233.   $dig [4] = $reslt;
  234.  
  235.   $dig [5] = ((($counter % 10000) % 1000) % 100) % 10;
  236.  
  237.   $size = 5;
  238.  
  239.  }
  240.  
  241.  
  242.  
  243. if ($change eq 1) {
  244.  
  245.   ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime (time);
  246.  
  247.   if ($sec < 10)  { $sec = "0$sec";   }
  248.  
  249.   if ($min < 10)  { $min = "0$min";   }
  250.  
  251.   if ($hour < 10) { $hour = "0$hour"; }
  252.  
  253.   if ($mday < 10) { $mday = "0$mday"; }
  254.  
  255.   if ($mon < 10)  { $monc = "0$mon";  }
  256.  
  257.   $date = "$hour\:$min\:$sec $mon/$mday/$year";
  258.  
  259.    
  260.  
  261.   open (LOG,">>countlog");
  262.  
  263.   print LOG "[$date] Referrer: ";
  264.  
  265.   print LOG $ENV{'HTTP_REFERER'};
  266.  
  267.   print LOG " User ";
  268.  
  269.   print LOG $ENV {'REMOTE_USER'};
  270.  
  271.   print LOG " from  ";
  272.  
  273.   print LOG $ENV{'REMOTE_HOST'};
  274.  
  275.   print LOG " (";
  276.  
  277.   print LOG $ENV {'REMOTE_ADDR'};
  278.  
  279.   print LOG ") HTTP Agent ";
  280.  
  281.   print LOG $ENV{'HTTP_USER_AGENT'};
  282.  
  283.   print LOG " -- Counter: ";
  284.  
  285.   print LOG $counter;
  286.  
  287.   print LOG "\n";
  288.  
  289.   close (LOG);
  290.  
  291.  }
  292.  
  293.  
  294.  
  295. #print "Content-Type: image/gif\n\n";
  296.  
  297.  
  298.  
  299. if (($change ne 1000) && ($change<=$size)) {
  300.  
  301.   print "Location: ";
  302.  
  303.   print "/Guests/Beethoven/CGI/";
  304.  
  305.   print $dig [$change];
  306.  
  307.   print ".gif\n\n";
  308.  
  309.  }
  310.  
  311. else {
  312.  
  313.   print "/Guests/Beethoven/CGI/empty.gif"; 
  314.  
  315.  }
  316.  
  317.  
  318.  
  319.