connect_error) { die(); } $sql = sprintf("SELECT id, last_date FROM usagetracker WHERE hash = '%s' LIMIT 1", $db->real_escape_string($hash) ); $res = $db->query($sql); if ($res->num_rows > 0) { // Shouldn't normally be here but happens if GCS settings are reset // or if the request come from another source than GCS. $hashUpdate = $res->fetch_assoc(); if ($hashUpdate['last_date'] < (time() - 3600)) { // Update timestamp and connection count. $sql = sprintf("UPDATE usagetracker SET last_date = %u, count = count + 1 WHERE id = %u LIMIT 1", time(), $hashUpdate['id'] ); $db->query($sql); } } else { // New hash $sql = sprintf("INSERT INTO usagetracker (first_date, last_date, ip, data, hash) VALUES (%u, %u, '%s', '%s', '%s')", time(), time(), encode_ip($_SERVER['REMOTE_ADDR']), $db->real_escape_string($string), $db->real_escape_string($_GET['hash']) ); $db->query($sql); } $db->close(); function usage_error() { //ob_start(); header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); header("Status: 404 Not Found"); // Matching server 404 output can be added. exit(); } function encode_ip($dotquad_ip) { $ip_sep = explode('.', $dotquad_ip); return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]); } ?>