#!/usr/local/bin/perl

require "cgi-lib.pl";

binmode STDIN;
print &PrintHeader, "\n\n"; 
print '<html><head><title>General Purpose Environment Checker</title></head><body>';

&ReadParse(*input);
print "<h2>Value of all components extracted from the URL</h2>\n";


print "<dl>\n";
foreach $key (keys %input)
{
  $output = $input{ "$key" };
  $len=length($output);
  $output =~ s/\n/<br>/g;
  $output =~ tr/\0-\37\177-\377/./;
  $output =~ s/\n/<br>\n/g;
  $output =~ s/\r/&lt;cr&gt;/g;	# so that we can see these..
  print '<dt><strong>', "$key</strong>";
  print " (Length of record is $len)\n";
  print "</dt>\n<dd> $output\n";
  print " </dd>\n";
  print "<br>\n";
}
print "</dl>\n";
print "<hr>\n";

print "<hr>\n";
print "hex dump<br>\n";

print "<dl>\n";
foreach $key (keys %input)
{
  $output = $input{ "$key" };
  $len=length($output);
  print '<dt><strong>', "$key</strong>";
  print " (Length of record is $len)";
  print "</dt>\n";
  print '<dd>'; 
  $index=0;

  print "<tt>\n";
  while ($index < $len)
  {
    $hex0="\@${index}H";
    $hex1="\@${index}h";
    $buf0=unpack("$hex0", $output);
    $buf1=unpack("$hex1", $output);
    print "$buf0", "$buf1", ' ';
    $index++;
    if ("$index"%25 == 0){ print "<br>\n";}
  }
  print "</tt>\n";
  print "</dd>\n";
  print "<br>\n";
}
print "</dl>\n";

print "<hr>";

print "<h2>Value of all environmental variables</h2>\n";
print "Query string is \n";
$output = $ENV{'QUERY_STRING'}; 
print "$output <br>\n";


print "<dl>\n";
foreach $key (keys %ENV)
{
  $output = $ENV{ $key };
  $output =~ s/\n/<br>\n/g;
  $output =~ s/\r/&lt;cr&gt;/g;

  print '<dt><strong>', "$key</strong></dt>\n<dd> $output </dd>\n";
}

print "<hr></body></html>\n";
