#!/usr/bin/perl

# Script to dump headers seen in HTTP GET request

$HEADERS_FILE = "/var/www/cremin.com/httpheaders.html";
#$HEADERS_FILE_TEMP = "/home/ronan/www/httpheaders_temp.html";
$HEADERS_FILE_TEMP = "/tmp/httpheaders_temp.html";
$HEADERS_URL = "http://cremin.com/httpheaders.html";


use CGI;
$q = new CGI;


open FH, ">$HEADERS_FILE_TEMP" or die "Failed to open '$HEADERS_FILE_TEMP': $!";

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
gmtime(time);
$year += 1900;
$mon++;
if ($hour < 10) { $hour = "0".$hour; }
if ($min < 10) { $min = "0".$min; }
if ($sec < 10) { $sec = "0".$sec; }

print FH "<pre>";
print FH "Request time: $mon/$mday/$year $hour:$min:$sec GMT";

print FH "\nMIME types: ".$q->Accept();;
my @mime_types = $q->Accept();
foreach $mime_type (@mime_types)
	{
	print FH "\n - '$mime_type'";
	}

print FH "\nUser agent string: '",$q->user_agent(),"'";
print FH "\nAccept language: '",$q->http('HTTP_ACCEPT_LANGUAGE'),"'";
print FH "\nAccept: '",$q->http('HTTP_ACCEPT'),"'";
print FH "\nIP address: '",$q->remote_host(),"'";
print FH "\nRequest method: '",	$q->request_method(),"'";
print FH "\n\nOther Headers:\n";
my @foo = $q->http();
foreach $bar (@foo)
	{
	#unless ($bar eq "HTTP_ACCEPT") 
	#	{
		print FH "\n$bar: ";
		print FH "'",$q->http($bar),"'";
	#	}
	}

print FH "</pre>";
print FH "<HR>";

close FH;

$result = new CGI;

print $result->header,
	$result->start_html("Ronan's header capture page"),
	$result->h1("Ronan's header capture page"),
	$result->p("Results can be seen <a href=\"$HEADERS_URL\">here</a>.
	"),
	$result->end_html;

system("cat $HEADERS_FILE >> $HEADERS_FILE_TEMP");
system("cp $HEADERS_FILE_TEMP $HEADERS_FILE");
system("rm $HEADERS_FILE_TEMP");

exit;
