#!/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 = ; close(AFILE); if ($numArgs < 1) { print "Content-type:text/html\n\n"; } $n=1; print "\n"; foreach $mline (@filemessages) { $mline =~ s//>/g; print "
  • Line # $n is " . $mline . "
  • \n"; $n++; }