var awdoc=document.location.href;
if (awdoc.match(/^http/i)!=null) {
document.write(''); }
EOF;
print "\n";
exit;
}
// Block some hosts
foreach($hostBlocking as $hostname)
{
$ip = gethostbyname($hostname);
if($ip == $_SERVER["REMOTE_ADDR"])
{
exit;
}
}
// Block some IPs
foreach($ipBlocking as $ip)
{
if($ip == $_SERVER["REMOTE_ADDR"])
{
exit;
}
}
//print "Content-Type: text/plain\n\n"; // Seems buggy in browsers
if(isset($_SERVER{"REDIRECT_STATUS"}) && $_SERVER{"REDIRECT_STATUS"} >= 400)
{
$httpcode = $_SERVER{"REDIRECT_STATUS"};
$_SERVER{'DOCUMENT_URI'} = $_SERVER{'REDIRECT_URL'};
$_SERVER{'DOCUMENT_URI'} .= "?$_SERVER{'REDIRECT_QUERY_STRING'}";
print "\n
\n$httpcode Error\n\n\n";
print "$httpcode Error
\n";
if ($_SERVER{"REDIRECT_STATUS"} == 404) { print "The requested page does not exist.\n"; }
print "\n\n";
$lt = localtime(time());
$time = sprintf("[%02d/%s/%04d:%02d:%02d:%02d $timezone]",$lt[3],$MonthLib[$lt[4]],$lt[5]+1900,$lt[2],$lt[1],$lt[0]);
$fd = fopen ($logfile, "a");
if(!$fd)
{
print "Could not open $logfile for writing";
exit;
}
fputs($fd, $_SERVER["REMOTE_ADDR"]." - - $time \"GET ".$_SERVER{'REQUEST_URI'}." ".$_SERVER["SERVER_PROTOCOL"]."\" ".$_SERVER{'REDIRECT_STATUS'}." - \"".($_SERVER{'HTTP_REFERER'}?$_SERVER{'HTTP_REFERER'}:'-')."\" \"".($_SERVER{'HTTP_USER_AGENT'}?$_SERVER{'HTTP_USER_AGENT'}:'-')."\"\n");
fclose($fd);
exit;
}
foreach(split("&", $_SERVER["QUERY_STRING"]) as $pair)
{
$namval = split("=", $pair);
$FORM[$namval[0]] = preg_replace("/ /","+",URLdecode($namval[1]));
}
if(isset($FORM['reset']) && $FORM['reset'] > 0)
{
reset_log();
exit;
}
# Check and/or Define value for time, FORM{'loc'}, FORM{'size'}, FORM{'ref'}
$lt = localtime(time());
$time = sprintf("[%02d/%s/%04d:%02d:%02d:%02d $timezone]",$lt[3],$MonthLib[$lt[4]],$lt[5]+1900,$lt[2],$lt[1],$lt[0]);
if(!isset($FORM['loc'])) # Should not happen
{
$FORM['loc'] = '';
}
else
{
$FORM['loc'] = preg_replace("/^http:\/\/.*?\//", "/", $FORM['loc']);
}
if((!isset($FORM['ref'])) || $FORM['ref']=='')
{
$FORM['ref'] = '-';
}
if((!isset($FORM['size'])) || $FORM['size']=='' || $FORM['size']=='undefined')
{
$FORM['size'] = '-';
}
$fd = fopen ($logfile, "a");
if(!$fd)
{
print "Could not open $logfile for writing";
exit;
}
flock($fd, LOCK_EX); # Lock
// Example of $_SERVER["QUERY_STRING"] here:
// loc=/js/awstats_misc_tracker.js
// loc=/index.php
$posAwStats = strpos($_SERVER["QUERY_STRING"], "awstats_misc_tracker.js");
if (! ($posAwStats === false))
{
// Log for awstats_misc_tracker.js
//$awsMiscTracker = substr($_SERVER["QUERY_STRING"], $posAwStats);
$awsMiscTracker = ereg_replace("loc=","",$_SERVER["QUERY_STRING"]);
$awsMiscTracker = preg_replace("/%([a-fA-F0-9][a-fA-F0-9])/e", pack("C", chr(hexdec("$1"))), $awsMiscTracker);
fputs($fd, $_SERVER["REMOTE_ADDR"]." - - $time \"GET ".$awsMiscTracker." ".$_SERVER["SERVER_PROTOCOL"]."\" 200 ".$FORM['size']." \"".$FORM['ref']."\" \"".$_SERVER["HTTP_USER_AGENT"]."\"\n");
}
else
{
fputs($fd, $_SERVER["REMOTE_ADDR"]." - - $time \"GET ".$FORM['loc']." ".$_SERVER["SERVER_PROTOCOL"]."\" 200 ".$FORM['size']." \"".$FORM['ref']."\" \"".$_SERVER["HTTP_USER_AGENT"]."\"\n");
}
flock($fd, LOCK_UN); # Unlock
fclose($fd);
print "document.write();";
function reset_log()
{
if(isset($FORM['password']) && $FORM['password']==$password)
{
$fd = fopen($logfile, "w");
if(!$fd)
{
print "Could not reset $logfile";
exit;
}
fclose($fd);
print "LOG FILE CLEARED!";
}
else
{
print "INVALID PASSWORD";
}
}
?>