There’s a bug in the code, this function:
public function Check_Spiders() {
$spiders = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler","TweetmemeBot", "Butterfly","Twitturls","Me.dium","Twiceler", "Yammybot", "Openbot", "Yahoo", "ia_archiver", "Lycos", "AltaVista", "Googlebot-Mobile", "Rambler", "AbachoBOT", "accoona", "AcoiRobot", "ASPSeek", "CrocCrawler", "Dumbot", "FAST-WebCrawler", "GeonaBot", "MSRBOT", "IDBot", "eStyle", "Scrubby");
foreach($spiders as $spider) {
if(strpos($this->get_UserAgent(), $spider) == true)
return true;
}
return false;
}
which detects the spiders is using get_UserAgent() which only returns the browser type, it should instead be using the user agent variable as so:
public function Check_Spiders() {
$spiders = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler","TweetmemeBot", "Butterfly","Twitturls","Me.dium","Twiceler", "Yammybot", "Openbot", "Yahoo", "ia_archiver", "Lycos", "AltaVista", "Googlebot-Mobile", "Rambler", "AbachoBOT", "accoona", "AcoiRobot", "ASPSeek", "CrocCrawler", "Dumbot", "FAST-WebCrawler", "GeonaBot", "MSRBOT", "IDBot", "eStyle", "Scrubby");
foreach($spiders as $spider) {
if(strpos($_SERVER['HTTP_USER_AGENT'], $spider) == true)
return true;
}
return false;
}