#!/usr/bin/perl
# readfile.cgi

$numArgs = $#ARGV + 1;
$ourfile="../Links.html";

foreach $argnum (0 .. $#ARGV) {
   $ourfile=$ARGV[$argnum];
}

if ($ENV{'REQUEST_METHOD'} eq "GET") {    # GET mode of use ...
   @yourpairs = split(/&/, $ENV{'QUERY_STRING'});
   foreach $yourpair (@yourpairs) {
     ($yourname, $yourvalue) = split(/=/, $yourpair);
     $yourvalue =~ tr/+/ /;
     $yourvalue =~ s/%([\dA-Fa-f]{2})/pack("C", hex($1))/eg;
     $getdata{$yourname} = $yourvalue;
    }
    $ourfile = $getdata{'file'};
} elsif ($numArgs < 1) {  # POST from a form mode of use ...

   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
   @ourpairs = split(/&/, $buffer);

   foreach $ourpair (@ourpairs) {
     ($ourname, $ourvalue) = split(/=/, $ourpair);
     $ourvalue =~ tr/+/ /;
     $ourvalue =~ s/%([\dA-Fa-f]{2})/pack("C", hex($1))/eg;
     $formdata{$ourname} = $ourvalue;
    }
    $ourfile = $formdata{'file'};
}

# Code to protect the www.rjmprogramming.com.au domain below ...
$ourfile =~ s/.html/~html/g;
$ourfile =~ s/.htm/~htm/g;
$ourfile =~ s/.txt/~txt/g;
$ourfile =~ s/\.\./~~/g;
$ourfile =~ s/\./!/g;
$ourfile =~ s/~/./g;

open(AFILE,"<" . $ourfile) || &ErrorMessage;
@filemessages = <AFILE>;
close(AFILE);

if ($numArgs < 1) {
  print "Content-type:text/html\n\n";
}
$n=1;
print "<UL>Lines</UL>\n";
foreach $mline (@filemessages) {
  $mline =~ s/</&lt;/g;
  $mline =~ s/>/&gt;/g;
  print "<LI>Line # $n is " . $mline . "</LI>\n";
  $n++;
}

