From 4f3bce79bfb5851cef9e7bc655c91bb3093cc401 Mon Sep 17 00:00:00 2001 From: donncha Date: Tue, 12 Jul 2005 11:27:54 +0000 Subject: Initial Import git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1 7be80a69-a1ef-0310-a953-fb0f7c49ff36 --- .../smarty-plugins/insert.getreferer.php | 211 +++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 wp-inst/wp-content/smarty-plugins/insert.getreferer.php (limited to 'wp-inst/wp-content/smarty-plugins/insert.getreferer.php') diff --git a/wp-inst/wp-content/smarty-plugins/insert.getreferer.php b/wp-inst/wp-content/smarty-plugins/insert.getreferer.php new file mode 100644 index 0000000..5fa4bb8 --- /dev/null +++ b/wp-inst/wp-content/smarty-plugins/insert.getreferer.php @@ -0,0 +1,211 @@ +query($sql); + } + + $ref = getenv('HTTP_REFERER'); + $ua = getenv( 'HTTP_USER_AGENT' ); + $currentURL = $_SERVER['REQUEST_URI']; + $fullCurrentURL = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; + if( $ref == '' ) + { + $ref = "DIRECT"; + } + + $found = false; + + if( $currentURL[ strlen( $currentURL ) -1 ] == '/' ) + { + $found = true; + } + else + { + $count_files = array( "wp-admin" ); + reset( $count_files ); + while( list( $key, $val ) = each( $count_files ) ) + { + $pos = strpos( $currentURL, $val ); + if( $pos == true ) + { + $found = true; + } + } + if( $found == true ) + { + // Don't bother going further - no need to record request! + return; + } + } + + if ($ref || $ref = strip_tags($ref) ) + { + + $realReferer = true; + $ignorePages = Array( 'lastupdated.php', 'b2rdf.php', 'b2rss2.php', 'b2bookmarklet.php', 'b2referers.php', 'b2commentspopup.php' ); + foreach ($ignorePages as $ignoresite){ + if (stristr($currentURL, $ignoresite)){ + $realReferer = false; + } + } + + $ignore = Array( + 'http://www.myelin.co.nz/ecosystem/bot.php', + 'http://radio.xmlstoragesystem.com/rcsPublic/', + 'http://blogdex.media.mit.edu//', + 'http://subhonker6.userland.com/rcsPublic/', + 'mastadonte.com', + 'http://blo.gs/ping.php', + $siteurl + ); + foreach ($ignore as $ignoresite){ + if (stristr($ref, $ignoresite)){ + $realReferer = false; + } + } + + $doubleCheckReferers = 1; + + $checkRef = doCheckRef( $ref ); + + if( $realReferer && $checkRef && $ref != 'DIRECT' && $doubleCheckReferers) + { + //this is so that the page up until the call to + //logReferer will get shown before it tries to check + //back against the refering URL. + flush(); + //err( "checking $ref" ); + + $goodReferer = 0; + $fp = @fopen ($ref, "r"); + if ($fp){ + socket_set_timeout($fp, 5); + while (!feof ($fp)) { + $page .= trim(fgets($fp)); + } + if (strstr($page,$fullCurrentURL)){ + $goodReferer = 1; + } + } + + if(!$goodReferer){ + $realReferer = false; + } + if( $realReferer == true ) + { + $query = "SELECT ID FROM referer_blacklist WHERE URL like '%$ref%'"; + //error_log( "$query\n", 3, "/tmp/queries.txt" ); + #mail( "donncha@tradesignals.com", "query", $query ); + $result = $wpdb->get_row( $query ); + if( $result ) + { + $ref = "DIRECT"; + } + } + + } + + $useragents = array( "http://www.syndic8.com", "http://dir.com/pompos.html", "NaverBot-1.0", "http://help.yahoo.com/help/us/ysearch/slurp", "http://www.google.com/bot.html", "http://www.blogdigger.com/", "http://search.msn.com/msnbot.htm", "Feedster, LLC.", "http://www.breakingblogs.com/timbo_bot.html", "fastbuzz.com", "http://www.pubsub.com/", "http://www.bloglines.com", "http://www.drupal.org/", "Ask Jeeves/Teoma", "ia_archiver", "http://minutillo.com/steve/feedonfeeds/", "larbin_2", "lmspider", "kinjabot", "lickBot 2.0", "Downes/Referrers", "daypopbot", "www.globalspec.com" ); + reset( $useragents ); + while( list( $key, $val ) = each( $useragents ) ) + { + if( strpos( $ua, $val ) !== false ) + { + $realReferer = false; + } + } + + if( $realReferer ) + { + if( $ref == 'DIRECT' ) + { + $anchor = $ref; + } + else + { + $anchor = preg_replace("/http:\/\//i", "", $ref); + $anchor = preg_replace("/^www\./i", "", $anchor); + $anchor = preg_replace("/\/.*/i", "", $anchor); + } + $today = date( "d" ); + + $sql = "update referer_visitLog + set visitTimes = visitTimes + 1 + where blogID = '$wpblog' + AND dayofmonth = '$today' + AND referingURL = '$ref' + AND baseDomain = '$anchor' + AND visitURL = '$currentURL'"; + $result = $wpdb->query( $sql ); + if( $result == false ) + { + $sql ="insert delayed into referer_visitLog (blogID,referingURL,baseDomain,visitURL,refpost, visitTimes, dayofmonth) + values ('$wpblog','$ref','$anchor','$currentURL','$p','1', '$today')"; + + $result = $wpdb->query( $sql ); + } + } + } +} + +?> -- cgit