#!/usr/bin/perl &getdata; sub getdata{ # Read in text if ($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { for ($i = 0; $i < $ENV{'CONTENT_LENGTH'}; $i++) { $in .= getc; } } @in = split(/&/,$in); foreach $i (0 .. $#in) { # Convert plus's to spaces $in[$i] =~ s/\+/ /g; # Convert %XX from hex numbers to alphanumeric $in[$i] =~ s/%(..)/pack("c",hex($1))/ge; # Split into key and value. $loc = index($in[$i],"="); $key = substr($in[$i],0,$loc); $val = substr($in[$i],$loc+1); $in{$key} .= '\0' if (defined($in{$key})); # \0 is the multiple separator $in{$key} .= $val; } } print "Content-type: text/html","\n\n"; print '',"\n"; system 'cat /var/www/inc/top.inc'; system 'cat /var/www/inc/altnav.inc'; if ("$in{'url'}" eq "") { system "cat /var/www/inc/news.inc | head -n 8"; } if ("$in{'num'}" eq "") { system "cat /var/www/inc/'$in{'url'}'.inc"; } else { system "cat /var/www/inc/'$in{'url'}'.inc | head -n '$in{'num'}'"; } if ("$in{'url'}" eq "sysinfo") { system 'perl /var/www/inc/sysinfo.cgi'; } if ("$in{'url'}" eq "self") { system 'perl /var/www/inc/self.cgi'; } if ("$in{'url2'}" eq "") { } else { system "cat /var/www/inc/'$in{'url2'}'.inc"; } system 'cat /var/www/inc/bottom.inc'; system 'cat /var/www/inc/footer.inc';