opendir.cgi
#!/usr/bin/perl if ($ENV{'REQUEST_METHOD'} eq 'GET') { @pairs = split(/&/, $ENV{'QUERY_STRING'}); } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); if ($ENV{'QUERY_STRING'}) { @getpairs =split(/&/, $ENV{'QUERY_STRING'}); push(@pairs,@getpairs); } } else { print "Content-type: text/html\n\n"; print "<P>Use Post or Get"; } print "Content-type: text/html\n\n"; $year = $formdata{'year'}; $month = sprintf("%02d", $formdata{'month'}); $day = sprintf("%02d", $formdata{'day'}); $desired_file = "logfile" . $year . $month . $day . ".txt"; chdir ("../../logs"); if (-e $desired_file) { open (LOG, $desired_file) || &ErrorMessage; @messages = <LOG>; close (LOG); $n=1; foreach $message (@messages) { print "<LI>Message # $n is <I>$message</I>"; $n++; } } else { print "Log doesn't exist."; opendir (LOGDIR, ".") || &ErrorMessage; @logfiles = readdir (LOGDIR); closedir (LOGDIR); if (@logfiles) { print "<P>You can choose from the following logs:"; foreach $filename (@logfiles) { print "<LI>$filename" unless ($filename =~ /^\.+$/); } } } sub ErrorMessage { print "Content-type: text/html\n\n"; print "The server can't access the file. Aborting script. \n"; exit; }