Code:
{
if(basename($_SERVER["SCRIPT_FILENAME"])=="/trade/log.php") { exit; }
include_once(dirname(__FILE__) . '/trade/config.php');
include_once(dirname(__FILE__) . '/trade/jarl_db.php');
$jarl_db = new jarl_db();
// Obtain referring address
$ref_address = $_SERVER["HTTP_REFERER"];
// Determine referring domain
preg_match("/^https?:\/\/(www\.)?([a-zA-Z0-9\.\-_]+)/", $ref_address, $ref_domain);
$ref_domain = strtolower($ref_domain[2]);
$wc = preg_match("/^([a-zA-Z0-9\-]+)\.(([a-z]{2,3})\.([a-z]{2,3}))?([a-z]{2,3})?(\*)?/", $ref_domain, $ext);
$wildcard = $ext[1];
// Only log hits from foreign referer
if(!empty($ref_domain) && preg_match("/" . str_replace(".", "\.", JARL_DOMAIN) . "/", $ref_domain)==0) {
// Obtain IPs
preg_match("/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/", $_SERVER["HTTP_X_FORWARDED_FOR"], $fip);
preg_match("/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/", $_SERVER["HTTP_CLIENT_IP"], $cip);
preg_match("/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/", $_SERVER["REMOTE_ADDR"], $ip);
// Clean them up to prevent SQL injection
$ref_address = $jarl_db->clean($ref_address);
$ref_domain = $jarl_db->clean($ref_domain);
$fip = $jarl_db->clean($fip[1]);
$cip = $jarl_db->clean($cip[1]);
$ip = $jarl_db->clean($ip[1]);
// Check for most recent hit and determine whether this new hit will count
$ltime = $jarl_db->result("SELECT time FROM " . JARL_PREFIX . "in WHERE ref_domain='$ref_domain' AND ip='$ip' AND fip='$fip' AND cip='$cip' ORDER BY id DESC LIMIT 1");
if(!empty($ltime)) {
$ctime = time();
if(JARL_T_CONSTRAINT>($ctime-$ltime)/60) {
if(JARL_T_PREVDAY) {
$lday=floor($ltime/86400);
$cday=floor($ctime/86400);
$valid_hit = ($lday!=$cday) ? true : false;
} else {
$valid_hit = false;
}
} else {
$valid_hit = true;
}
} else {
$valid_hit = true;
}
// Hit it up
if($valid_hit) {
$geoip_data = $jarl_db->fetchrow("SELECT country,name FROM " . JARL_PREFIX . "ip WHERE MBRCONTAINS(ip_poly, POINTFROMWKB(POINT(INET_ATON('$ip'), 0)))");
$jarl_db->query("INSERT INTO " . JARL_PREFIX . "in (id, fip, cip, ip, co, coname, ref_address, ref_domain, wildcard, time) VALUES ('', '$fip', '$cip', '$ip', '" . $geoip_data["country"] . "', '" . $geoip_data["name"] . "', '$ref_address', '$ref_domain', '$wildcard', " . time() . ")");
}
}
$jarl_db->kill();}