#!/usr/local/bin/perl # # Output All the given options and settings available to program # print "Content-type: text/plain\n\n"; print "CGI/1.0 test script report:\n\n"; print "Program Arguments:-\n"; print " argv[0] = \"$0\"\n"; $i = 1; for $arg ( @ARGV ) { printf " argv[%d] = \"%s\"\n", $i++, $arg; } print " user = \"", (getpwuid($<))[0], "\"\n"; print "\n"; print "Environment:-\n"; for $env ( sort keys %ENV ) { printf " %-20s = \"%s\"\n", $env, $ENV{$env}; } print "\n"; if( length( $ENV{"QUERY_STRING"} ) > 0 ) { if( $ENV{"QUERY_STRING"} =~ /=/ ) { print "Query Variables:-\n"; &expand_cgi_vars( $ENV{'QUERY_STRING'} ); print "\n"; } else { printf "Query String: \"%s\"\n\n", $ENV{'QUERY_STRING'}; } } if( $ENV{'CONTENT_LENGTH'} > 0 ) { print "Post Variables:-\n"; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); &expand_cgi_vars( $buffer ); print "\n"; } exit 0; sub expand_cgi_vars { local($buffer) = @_; foreach $pair ( split(/&/, $buffer) ) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # Uncomment for debugging purposes printf " \"%s\" = \"%s\"\n", $name, $value; } }