Website: http://westland.ath.cx/ Add '' into the html code of an page and the page will be automatically added to the database. Go to stats 'stats.php?a=vs' to view the counters and their status. SQL query: CREATE TABLE `pagecounter` ( `pageID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `page` TEXT NOT NULL, `visits` INT NOT NULL, INDEX (`pageID`), UNIQUE (`pageID`) ); */ $a = $_GET["a"]; $name = $_GET["name"]; $refer = $_GET["refer"]; $force = $_GET["force"]; // Database settings DEFINE("SERVER", "localhost"); DEFINE("DATABASE", "shades2_db"); DEFINE("USERNAME", "shades2_me"); DEFINE("DBPASSWORD", "kmtjkm12"); // IP's you want to ban seperated by spaces // Work, Home //DEFINE("DENYIPS", ""); DEFINE("DENYIPS", "68.84.235.202 66.95.147.137 69.139.26.184 164.145.53.210 199.64.0.252 68.80.149.141 71.225.149.31 71.225.161.94 71.225.175.120 71.225.235.139 38.98.120.67 67.195.37.89 72.30.142.244 66.249.67.103 199.61.25.254 199.61.25.252"); $db = mysql_connect(SERVER, USERNAME, DBPASSWORD); function createPageEntry($page, $ip) { if (isset($page)) { $queryGetPages = "INSERT INTO `pagecounter` (`pageID`, `page`, `visits`,`lastip`) VALUES ('', '$page', '1', '$ip')"; $resultGetPages = mysql_db_query(DATABASE, $queryGetPages) or die ("Query failed: error was ".mysql_error()); return true; } else { return false; } } function write_log($page,$ip,$count,$referer,$hostname) { $nowtime = time() + (3 * 3600); $o = date("M d Y (D) h:i:s A", $nowtime)." ".$page." [$count] "; $query = "INSERT INTO `hitlog` (`idx`,`msg`,`hostname`,`referer`,`ip`) VALUES ('','$o','$hostname','$referer','$ip')"; $resultIncrement = mysql_db_query(DATABASE, $query) or die ("Query failed: error was ".mysql_error()); } function handle_referer($referer) { if (!isset($referer) || $referer == "") { return; } $result = mysql_db_query(DATABASE, "SELECT * FROM referers WHERE name='$referer'"); if (mysql_num_rows($result) == 0) { mysql_db_query(DATABASE, "INSERT INTO `referers` (`name`, `count`) VALUES ('$referer', '1')"); } else { mysql_db_query(DATABASE, "UPDATE referers SET count = count + 1 WHERE name='$referer'"); } } $evil_referers = array("poker", "casino", "cialis", "credit", "loans", "deals", "levitra", "holdem", "hold-em", "hometeaminspection", "online-deals", "weightloss", "weight-loss", "fidelityfunding", "blackjack", "taxes", "forex", "mortgage", "phentermine", "pharmacy", "refinance"); function bad_referer($referer) { global $evil_referers; foreach ($evil_referers as $bad_one) { if (strstr($referer, $bad_one)) return 1; } return 0; } function check_bad_referer($referer, $ip) { if (bad_referer($referer)) { // Bad referrer // add the IP address to our blocked list $result = mysql_db_query(DATABASE, "SELECT * FROM `ipblock` WHERE `ipaddr` = '$ip'"); if (!$result || mysql_num_rows($result) == 0) { $result = mysql_db_query(DATABASE, "INSERT INTO `ipblock` (`ipaddr`) VALUES ('$ip')"); } // else IP address is already on the blocked list } } function incrementVisits($page,$ip,$force,$referer) { global $noimg; // $hostname = gethostbyaddr($ip); // this is VERY SLOW!!! $hostname = ""; $denyips = explode(" ", DENYIPS); check_bad_referer($referer, $ip); if (isset($noimg)) echo $referer; if (isset($page) && ($force != 0 || (!in_array($ip, $denyips)))) { handle_referer($referer); $queryGetPages = "SELECT * FROM pagecounter WHERE page='$page'"; $resultGetPages = mysql_db_query(DATABASE, $queryGetPages) or die ("Query failed: error was ".mysql_error()); if (mysql_num_rows($resultGetPages) == 0) { if (createPageEntry($page, $ip)) { write_log($page,$ip,1,$referer,$hostname); } return; } $value = mysql_fetch_object($resultGetPages); $v = $value->visits; if ($ip != $value->lastip || $force != 0) { $v++; $queryIncrement = "UPDATE pagecounter SET visits = visits + 1, lastip = '$ip' WHERE page='$page'"; $resultIncrement = mysql_query($queryIncrement) or die ("Query failed: error was ".mysql_error()); } write_log($page,$ip,$v,$referer,$hostname); } } function do_referers() { $result = mysql_db_query(DATABASE, "SELECT * FROM hitlog WHERE 1"); // all rows while (($value = mysql_fetch_object($result))) { handle_referer($value->referer); } } // Optionally pass in $refer as the referer switch ($a) { default: header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); header ("Content-type: image/png"); $im = @ImageCreate (30, 10) or die ("Cannot Initialize new GD image stream"); $white = ImageColorAllocate ($im, 255, 255, 255); $trans = imagecolortransparent($im,$white); ImagePng ($im); incrementVisits ($HTTP_REFERER,$_SERVER['REMOTE_ADDR'],0,$refer); break; //case "dorefer": //do_referers(); //break; // Auctions: pass in parameter "name" also case "au": if (isset($noimg)) { echo "// NULL script\n"; } else { header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Cache-Control: no-cache, must-revalidate"); header ("Pragma: no-cache"); header ("Content-type: image/png"); $im = @ImageCreate (30, 10) or die ("Cannot Initialize new GD image stream"); $white = ImageColorAllocate ($im, 255, 255, 255); $trans = imagecolortransparent($im,$white); ImagePng ($im); } if (isset($force)) incrementVisits ($name,$_SERVER['REMOTE_ADDR'],1,$refer); else incrementVisits ($name,$_SERVER['REMOTE_ADDR'],0,$refer); break; } mysql_close($db); ?>