Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Support Thread for Supertracker Contribution


equilla

Recommended Posts

Sorry guys, after a lot more of testing, this change only does exclude the robots, somehow the exluded ip's still do make database insertions! Hope someone can make it work!

Link to comment
Share on other sites

Is there any way to do reporting that is customized by date?

Hi,

 

yes, this is possible but it requires some more code to be written in order to filter the data generated in the MySQL queries in admin. It's still on my to do list unfortunately....

 

 

Regards,

 

 

 

Mark

Link to comment
Share on other sites

Any plans to exclude the Bots? They are all one a site I installed this FABULOUS contrib on every single day. Its a real B**ch to wade through all the bot stuff because they surf so many products for each session....

 

Thanks for the contrib tho... works great!

 

Sorry guys, after a lot more of testing, this change only does exclude the robots, somehow the exluded ip's still do make database insertions! Hope someone can make it work!
Link to comment
Share on other sites

Hello,

 

after installing the Supertracker contrib everything seems to be o.k. so long I type in my adress like www.copierparts.de/index.php but by typing only www.copierparts.de the following error comes: Warning: strpos(): Empty delimiter. in /home/mbcopdb6/www.copierparts.de/includes/classes/supertracker.php on line 161

 

Please help!

 

Matthias

Link to comment
Share on other sites

To exclude ip's and robots!!!!!!!!!!!!!!!!!

It does work fine now.

Hereby my includes/classes/supertracker.php!

Have fun with it!

 

--------------------------------------------------------------------------------------------------

<?php

/*

$Id: supertracker.php,v3.1 2005/10/22

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2003 osCommerce

 

Released under the GNU General Public License

*/

 

class supertracker {

function supertracker(){

 

}

 

function update() {

global $cart, $HTTP_GET_VARS, $customer_id;

//// **** CONFIGURATION SECTION **** ////

 

//Comma Separate List of IPs which should not be recorded, for instance, your own PCs IP address, or

//that of your server if you are using Cron Jobs, etc

$excluded_ips = '';

 

//// **** CONFIGURATION SECTION EOF **** ////

$record_session = true;

$ip_address = $_SERVER['REMOTE_ADDR'];

 

if ($excluded_ips != '') {

$ex_array = explode(',',$excluded_ips);

foreach ($ex_array as $key => $ex_ip) {

if ($ip_address == $ex_ip) $record_session = false;

}

}

/////////////////////////////////////////////////////////////////// exclude robots

$agent = $_SERVER['HTTP_USER_AGENT'];

$arr = array("msnbot", "googlebot", "slurp", "abot", "dbot", "ebot", "hbot", "kbot", "mbot", "nbot", "obot", "pbot", "rbot", "sbot", "tbot", "ybot", "bot.", "crawl", "slurp", "spider", "accoona", "acoon", "ah-ha.com", "ahoy", "altavista", "ananzi", "anthill", "appie", "arachnophilia", "arale", "araneo", "aranha", "architext", "aretha", "arks", "aspseek", "asterias", "atlocal", "atn", "atomz", "augurfind", "backrub", "bannana_bot", "big brother", "bjaaland", "blackwidow", "bloodhound", "boitho", "booch", "bradley", "calif", "cassandra", "ccubee", "cfetch", "churl", "cienciaficcion", "cmc", "collective", "combine system", "computingsite", "cusco", "deepindex", "deweb", "die blinde kuh", "digger", "dmoz", "docomo", "download express", "dwcp", "ebiness", "e-collector", "ejupiter", "emacs-w3 search engine", "esther", "evliya celebi", "ezresult", "falcon", "felix ide", "ferret", "fetchrover", "fido", "findlinks", "fireball", "fish search", "fouineur", "funnelweb", "gazz", "gcreep", "getterroboplus", "geturl", "glx", "goforit", "golem", "grabber", "grapnel", "griffon", "gromit", "grub", "gulliver", "hamahakki", "harvest", "havindex", "helix", "heritrix", "hku www octopus", "homerweb", "htdig", "html index", "html_analyzer", "htmlgobble", "hubater", "hyper-decontextualizer", "ia_archiver", "ibm_planetwide", "ichiro", "iconsurf", "iltrovatore", "image.kapsi.net", "imagelock", "incywincy", "indexer", "infobee", "informant", "infoseek", "ingrid", "inktomisearch.com", "inspector web", "intelliagent", "internet shinchakubin", "ip3000", "iron33", "israeli-search", "ivia", "jack", "jakarta", "java/", "javabee", "jetbot", "jumpstation", "katipo", "kdd-explorer", "kilroy", "knowledge", "kototoi", "labelgrabber", "lachesis", "larbin", "legs", "libwww", "linkalarm", "link validator", "linkscan", "linkwalker", "lockon", "lwp", "lycos", "magpie", "mantraagent", "marvin/", "mattie", "mediafox", "mediapartners", "mercator", "merzscope", "miva", "mj12", "mnogosearch", "moget", "monster", "moose", "motor", "multitext", "muncher", "muscatferret", "mwd.search", "myweb", "nameprotect", "nationaldirectory", "nazilla", "ncsa beta", "nec-meshexplorer", "nederland.zoek", "netcarta webmap engine", "netmechanic", "netresearchserver", "netscoop", "newscan-online", "ng/", "nhse", "nomad", "nutch", "nzexplorer", "objectssearch", "occam", "omni", "open text", "openfind", "orb search", "osis-project", "pack rat", "pageboy", "parasite", "partnersite", "patric", "pear.", "pegasus", "peregrinator", "pgp key agent", "phantom", "phpdig", "picosearch", "piltdownman", "pimptrain", "pinpoint", "pioneer", "piranha", "plumtreewebaccessor", "pompos", "poppelsdorf", "poppi", "popular iconoclast", "rambler", "raven search", "roach", "road runner", "roadhouse", "robbie", "robofox", "robozilla", "rules", "salty", "sbider", "scooter", "scrubby", "search.", "searchprocess", "seeker", "semanticdiscovery", "senrigan", "sg-scout", "shai'hulud", "shark", "shopwiki", "sidewinder", "sift", "simmany", "site searcher", "site valet", "sitetech-rover", "skymob.com", "sleek", "smartwit", "sna-", "snooper", "sohu", "speedfind", "spinner", "spyder", "steeler/", "suke", "suntek", "supersnooper", "surfnomore", "sven", "sygol", "szukacz", "tach black widow", "tarantula", "templeton", "/teoma", "t-h-u-n-d-e-r-s-t-o-n-e", "titan", "titin", "tkwww", "toutatis", "t-rex", "tutorgig", "ucsd", "udmsearch", "ultraseek", "url check", "vagabondo", "valkyrie", "verticrawl", "victoria", "vision-search", "volcano", "voyager/", "w3c_validator", "w3m2", "w3mir", "wallpaper", "wanderer", "web core", "web hopper", "web wombat", "webbandit", "webcatcher", "webcopy", "webfoot", "weblayers", "weblinker", "weblog monitor", "webmirror", "webquest", "webreaper", "websitepulse", "websnarf", "webstolperer", "webvac", "webwalk", "webwatch", "webwombat", "webzinger", "wget", "whatuseek", "whizbang", "whowhere", "wild ferret", "wire", "worldlight", "wwwc", "xenu", "xget", "xift", "yandex", "zao/", "zippp", "zyborg");

foreach ($arr as $bot) {

if (eregi($bot, $agent)) {

$bot_here = "1";

}

}

if ($bot_here == "1") {

$record_session = false;

}

/////////////////////////////////////////////////////////////////////

 

 

//Big If statement that stops us doing anything more if this IP is one of the

//ones we have chosen to exclude

if ($record_session) {

 

$existing_session = false;

$thirty_ago_timestamp = strtotime("now") - (30*60);

$thirty_mins_ago = date('Y-m-d H:i:s', $thirty_ago_timestamp);

$browser_string = $_SERVER['HTTP_USER_AGENT'];

$ip_array = explode ('.',$ip_address);

$ip_start = $ip_array[0] . '.' . $ip_array[1];

//Find out if this user already appears in the supertracker db table

 

//First thing to try is customer_id, if they are signed in

$query_array[0] = "from supertracker where customer_id ='" . $customer_id . "' and last_click > '" . $thirty_mins_ago . "'";

$query_array[1] = "from supertracker where ip_address like '" . $ip_address . "%' and last_click > '" . $thirty_mins_ago . "' and browser_string ='" . $browser_string . "'";

$query_array[2] = "from supertracker where cart_total ='" . $cart->show_total() . "' and last_click > '" . $thirty_mins_ago . "'";

$query_sucess = -1;

 

 

 

if (isset($customer_id)) {

$query = "select 1 " . $query_array[0];

 

$result = tep_db_query($query);

if (tep_db_num_rows ($result) > 0) {

$existing_session = true;

$query_sucess = 0;

}

}

 

//Next, we try this: compare first 2 parts of the IP address (Class B), and the browser

//Identification String, which give us a good chance of locating the details for a given user. I reckon

//that the chances of having more than 1 user within a 30 minute window with identical values

//is pretty small, so hopefully this will work and should be more reliable than using Session IDs....

 

 

if (!$existing_session) {

$query = "select 1 " . $query_array[1]; $result = tep_db_query($query);

if (tep_db_num_rows ($result) > 0) {

$existing_session = true;

$query_sucess = 1;

}

}

 

//If that didn't work, and we have something in the cart, we can use that to try and find the

//record instead. Obviously, people with things in their cart don't just appear from nowhere!

if (!$existing_session) {

if ($cart->count_contents()>0) {

$query = "select 1 " . $query_array[2];

$result = tep_db_query($query);

if (tep_db_num_rows ($result) > 0) {

$existing_session = true;

$query_sucess = 2;

}

}

}

 

 

//Having worked out if we have a new or existing user session lets record some details....!

if ($existing_session) {

$query = "select * " . $query_array[$query_sucess];

$result = tep_db_query($query);

 

//Existing tracked session, so just update relevant existing details

$tracking_data = tep_db_fetch_array($result);

$tracking_id = $tracking_data['tracking_id'];

$products_viewed=$tracking_data['products_viewed'];

$added_cart = $tracking_data['added_cart'];

$completed_purchase = $tracking_data['completed_purchase'];

$num_clicks = $tracking_data['num_clicks']+1;

$categories_viewed = unserialize($tracking_data['categories_viewed']);

$cart_contents = unserialize($tracking_data['cart_contents']);

$cart_total = $tracking_data['cart_total'];

$order_id = $tracking_data['order_id'];

if (isset($customer_id)) $cust_id=$customer_id;

else $cust_id=$tracking_data['customer_id'];

 

$current_page=$_SERVER['PHP_SELF'];

$last_click = date('Y-m-d H:i:s');

 

 

//Find out if the customer has added something to their cart for the first time

if (($added_cart!='true') && ($cart->count_contents()>0)) $added_cart = 'true';

 

//Has a purchase just been completed?

if ((strstr($current_page, 'checkout_success.php'))&& ($completed_purchase!='true')) {

$completed_purchase='true';

$order_q = "select orders_id from orders where customers_id = '" . $cust_id . "' ORDER BY date_purchased DESC";

$order_result = tep_db_query($order_q);

if (tep_db_num_rows($order_result) > 0) {

$order_row = tep_db_fetch_array($order_result);

$order_id = $order_row['orders_id'];

}

}

 

//If customer is looking at a product, add it to the list of products viewed

if (strstr($current_page, 'product_info.php')) {

$current_product_id = $HTTP_GET_VARS['products_id'];

if (!strstr($products_viewed, '*' . $current_product_id . '?')) {

//Product hasn't been previously recorded as viewed

$products_viewed .= '*' . $current_product_id . '?';

}

}

 

//Store away their cart contents

//But, the cart is dumped at checkout, so we don't want to overwrite the stored cart contents

//In this case

$current_cart_contents = serialize($cart->contents);

if (strlen($current_cart_contents)>6) {

$cart_contents = $current_cart_contents;

$cart_total = $cart->show_total();

}

 

 

 

//If we are on index.php, but looking at category results, make sure we record which category

if (strpos($current_page, 'index.php')) {

if (isset($_GET['cPath'])) {

$cat_id = $_GET['cPath'];

$cat_id_array = explode('_',$cat_id);

$cat_id = $cat_id_array[sizeof($cat_id_array)-1];

$categories_viewed[$cat_id]=1;

}

}

 

$categories_viewed = serialize($categories_viewed);

$query = "UPDATE supertracker set last_click='" . $last_click . "', exit_page='" . $current_page . "', num_clicks='" . $num_clicks . "', added_cart='" . $added_cart . "', categories_viewed='" . $categories_viewed . "', products_viewed='" . $products_viewed . "', customer_id='" . $cust_id . "', completed_purchase='" . $completed_purchase . "', cart_contents='" . $cart_contents . "', cart_total = '" . $cart_total . "', order_id = '" . $order_id . "' where tracking_id='" . $tracking_id . "'";

tep_db_query($query);

 

}

else {

//New vistor, so record referrer, etc

//Next line defines pages on which a new visitor should definitely not be recorded

$prohibited_pages = 'login.php,checkout_shipping.php,checkout_payment.php,checkout_process.php,ch

eckout_confirmation.php,checkout_success.php';

$current_page=$_SERVER['PHP_SELF'];

 

if (!strpos($prohibited_pages, $current_page)) {

$refer_data = $_SERVER['HTTP_REFERER'];

$refer_data = explode('?', $refer_data);

$referrer=$refer_data[0];

$query_string=$refer_data[1];

 

$ip = $_SERVER['REMOTE_ADDR'];

$browser_string = $_SERVER['HTTP_USER_AGENT'];

 

include(DIR_WS_INCLUDES . "geoip.inc");

$gi = geoip_open(DIR_WS_INCLUDES . "GeoIP.dat",GEOIP_STANDARD);

$country_name = geoip_country_name_by_addr($gi, $ip);

$country_code = strtolower(geoip_country_code_by_addr($gi, $ip));

geoip_close($gi);

 

 

$time_arrived = date('Y-m-d H:i:s');

$landing_page = $_SERVER['REQUEST_URI'];

$query = "INSERT INTO `supertracker` (`ip_address`, `browser_string`, `country_code`, `country_name`, `referrer`,`referrer_query_string`,`landing_page`,`exit_page`,`time_arrived`,`last_click`) VALUES ('" . $ip . "','" . $browser_string . "','" . $country_code . "', '" . $country_name . "', '" . $referrer . "', '" . $query_string . "','" . $landing_page . "','" . $current_page . "','" . $time_arrived . "','" . $time_arrived . "')";

tep_db_query($query);

 

}//end if for prohibited pages

}//end else

}//End big If statement (Record Exclusion for certain IPs)

 

}//End function update

}//End Class

 

?>

Link to comment
Share on other sites

I almost forgot... I did have one problem when I copied the code from your post.... when I loaded a catalog page I got the SQL error: "Unknown column "las t_click". There was a line break in the code right after the s

 

I tried posting my working file with the BBCODE but it still causes a line break....so... if anyone gets the error, look towards the bottom of the file (around line 204) for:

la
st_click

 

put your cursor/caret in front of the "s" and hit backspace to make it all one line....

 

Below is the entire query. For some reason this bulletin board causes the line break even when using the bbcode for

[code]

 

$query = "INSERT INTO `supertracker` (`ip_address`, `browser_string`, `country_code`, `country_name`, `referrer`,`referrer_query_string`,`landing_page`,`exit_page`,`time_arrived`,`last_click`) VALUES ('" . $ip . "','" . $browser_string . "','" . $country_code . "', '" . $country_name . "', '" . $referrer . "', '" . $query_string . "','" . $landing_page . "','" . $current_page . "','" . $time_arrived . "','" . $time_arrived . "')";

tep_db_query($query);

 

Cheers :thumbsup:

Link to comment
Share on other sites

Just use your old supertracker.php and add the exlude bots part! That should work

 

 

//Comma Separate List of IPs which should not be recorded, for instance, your own PCs IP address, or

//that of your server if you are using Cron Jobs, etc

$excluded_ips = '';

 

//// **** CONFIGURATION SECTION EOF **** ////

$record_session = true;

$ip_address = $_SERVER['REMOTE_ADDR'];

 

if ($excluded_ips != '') {

$ex_array = explode(',',$excluded_ips);

foreach ($ex_array as $key => $ex_ip) {

if ($ip_address == $ex_ip) $record_session = false;

}

}

/////////////////////////////////////////////////////////////////// exclude robots

$agent = $_SERVER['HTTP_USER_AGENT'];

$arr = array("msnbot", "googlebot", "slurp", "abot", "dbot", "ebot", "hbot", "kbot", "mbot", "nbot", "obot", "pbot", "rbot", "sbot", "tbot", "ybot", "bot.", "crawl", "slurp", "spider", "accoona", "acoon", "ah-ha.com", "ahoy", "altavista", "ananzi", "anthill", "appie", "arachnophilia", "arale", "araneo", "aranha", "architext", "aretha", "arks", "aspseek", "asterias", "atlocal", "atn", "atomz", "augurfind", "backrub", "bannana_bot", "big brother", "bjaaland", "blackwidow", "bloodhound", "boitho", "booch", "bradley", "calif", "cassandra", "ccubee", "cfetch", "churl", "cienciaficcion", "cmc", "collective", "combine system", "computingsite", "cusco", "deepindex", "deweb", "die blinde kuh", "digger", "dmoz", "docomo", "download express", "dwcp", "ebiness", "e-collector", "ejupiter", "emacs-w3 search engine", "esther", "evliya celebi", "ezresult", "falcon", "felix ide", "ferret", "fetchrover", "fido", "findlinks", "fireball", "fish search", "fouineur", "funnelweb", "gazz", "gcreep", "getterroboplus", "geturl", "glx", "goforit", "golem", "grabber", "grapnel", "griffon", "gromit", "grub", "gulliver", "hamahakki", "harvest", "havindex", "helix", "heritrix", "hku www octopus", "homerweb", "htdig", "html index", "html_analyzer", "htmlgobble", "hubater", "hyper-decontextualizer", "ia_archiver", "ibm_planetwide", "ichiro", "iconsurf", "iltrovatore", "image.kapsi.net", "imagelock", "incywincy", "indexer", "infobee", "informant", "infoseek", "ingrid", "inktomisearch.com", "inspector web", "intelliagent", "internet shinchakubin", "ip3000", "iron33", "israeli-search", "ivia", "jack", "jakarta", "java/", "javabee", "jetbot", "jumpstation", "katipo", "kdd-explorer", "kilroy", "knowledge", "kototoi", "labelgrabber", "lachesis", "larbin", "legs", "libwww", "linkalarm", "link validator", "linkscan", "linkwalker", "lockon", "lwp", "lycos", "magpie", "mantraagent", "marvin/", "mattie", "mediafox", "mediapartners", "mercator", "merzscope", "miva", "mj12", "mnogosearch", "moget", "monster", "moose", "motor", "multitext", "muncher", "muscatferret", "mwd.search", "myweb", "nameprotect", "nationaldirectory", "nazilla", "ncsa beta", "nec-meshexplorer", "nederland.zoek", "netcarta webmap engine", "netmechanic", "netresearchserver", "netscoop", "newscan-online", "ng/", "nhse", "nomad", "nutch", "nzexplorer", "objectssearch", "occam", "omni", "open text", "openfind", "orb search", "osis-project", "pack rat", "pageboy", "parasite", "partnersite", "patric", "pear.", "pegasus", "peregrinator", "pgp key agent", "phantom", "phpdig", "picosearch", "piltdownman", "pimptrain", "pinpoint", "pioneer", "piranha", "plumtreewebaccessor", "pompos", "poppelsdorf", "poppi", "popular iconoclast", "rambler", "raven search", "roach", "road runner", "roadhouse", "robbie", "robofox", "robozilla", "rules", "salty", "sbider", "scooter", "scrubby", "search.", "searchprocess", "seeker", "semanticdiscovery", "senrigan", "sg-scout", "shai'hulud", "shark", "shopwiki", "sidewinder", "sift", "simmany", "site searcher", "site valet", "sitetech-rover", "skymob.com", "sleek", "smartwit", "sna-", "snooper", "sohu", "speedfind", "spinner", "spyder", "steeler/", "suke", "suntek", "supersnooper", "surfnomore", "sven", "sygol", "szukacz", "tach black widow", "tarantula", "templeton", "/teoma", "t-h-u-n-d-e-r-s-t-o-n-e", "titan", "titin", "tkwww", "toutatis", "t-rex", "tutorgig", "ucsd", "udmsearch", "ultraseek", "url check", "vagabondo", "valkyrie", "verticrawl", "victoria", "vision-search", "volcano", "voyager/", "w3c_validator", "w3m2", "w3mir", "wallpaper", "wanderer", "web core", "web hopper", "web wombat", "webbandit", "webcatcher", "webcopy", "webfoot", "weblayers", "weblinker", "weblog monitor", "webmirror", "webquest", "webreaper", "websitepulse", "websnarf", "webstolperer", "webvac", "webwalk", "webwatch", "webwombat", "webzinger", "wget", "whatuseek", "whizbang", "whowhere", "wild ferret", "wire", "worldlight", "wwwc", "xenu", "xget", "xift", "yandex", "zao/", "zippp", "zyborg");

foreach ($arr as $bot) {

if (eregi($bot, $agent)) {

$bot_here = "1";

}

}

if ($bot_here == "1") {

$record_session = false;

}

/////////////////////////////////////////////////////////////////////

Link to comment
Share on other sites

Fons- good work, this will be very helpful. Quick question...im using supertracker V3.1 and my file has another several lines different then the file you posted. Do these different lines matter, or only whats between the '//////////////////////////'s? Thanks!

Link to comment
Share on other sites

does anybody know why this is no longer in the contribution area?

No word from the powers that be on this one, however I can think of a couple of possible reasons why it was removed. However, it has now come to the point that I need to post a relatively urgent update, so I'll be posting this tonight (I'm in the UK, so that's my tonight...). As the original contribution has vanished it will have to be under a different URL, which I'll advice once it has been done. I'll post it as a complete version for new users, but for upgraders there will only be one file to replace.

 

Regards,

 

 

 

 

Mark

Link to comment
Share on other sites

Hi All,

 

OK here is the update to the contribution:-

 

http://www.oscommerce.com/community/contributions,3924

 

I strongly advise all users to update to the latest version as I picked up on something of a security issue this week which has been corrected in this version along with a few other tweaks to clamp down on any similar issues I could think of.

 

I have also added the bots exclusion code provided by Fons (many thanks for this :D ). It's commented out by default (some people like to know what bots are up to), so remove the comments if you want to use this.

 

For upgraders, you need only replace the one file : /catalog/includes/classes/supertracker.php, so it's a simple upgrade.

 

Regards,

 

 

 

 

Mark

Link to comment
Share on other sites

in addition to the bots blocker.

I also get irritated by bots that can not be tracked by USER_AGENT, so the next step is to block ip ranges from hosts or countries

Same code as the bot blocker of course :-)

 

//EXCLUDE BOTS END OF SECTION - REMOVE THIS LINE IF YOU WANT TO EXCLUDE BOTS FROM THE STATS

 

//EXCLUDE ip ranges

$hostagent = $_SERVER['REMOTE_ADDR'];

$host_here = false;

$hostarr = array("127.0.0.", "127.0.");

foreach ($hostarr as $hostbot) {

if (eregi($hostbot, $hostagent)) {

$host_here = true;

}

}

if ($host_here) {

$record_session = false;

}

 

//EXCLUDE ip ranges

 

//Big If statement that stops us doing anything more if this IP is one of the

Link to comment
Share on other sites

For those interested, my new block ip's, ip ranges and botsblocker, now taken from the /incl/spiders.txt

//////////////////////////////////////////////////////////////////

 

//Comma Separate List of IPs which should not be recorded, for instance, your own PCs IP address, or

//that of your server if you are using Cron Jobs, etc

$excluded_ips = '222.85.49.189,204.13.162.33,82.94.246.15,204.71.191.182,216.205.79.48,82.94.

246.15,60.248.237.127,62.163.164.209,66.103.242.21,66.194.6.72,66.246.218.107,204

.13.162.44,66.49.137.179,219.81.227.34,195.56.65.217,66.103.242.21,80.69.85.180,2

21.147.35.226,204.13.162.36,213.46.124.217,66.194.6.70,204.13.162.35,70.85.193.17

8,193.95.154.69,70.49.85.146,204.13.162.43,81.59.12.77,64.80.82.249,213.46.124.21

7,86.80.225.147,66.87.4.212,212.187.19.1,81.164.19.239,66.28.37.130,84.41.134.207

,211.227.96.72,80.56.206.219,62.163.164.29,82.173.136.152,207.44.242.75,218.159.1

69.138,66.189.175.91,86.84.222.97,211.227.96.72,212.238.158.67,195.136.80.67,59.1

50.207.223,213.133.41.173,221.144.94.36';

 

//// **** CONFIGURATION SECTION EOF **** ////

$record_session = true;

$ip_address = $_SERVER['REMOTE_ADDR'];

 

if ($excluded_ips != '') {

$ex_array = explode(',',$excluded_ips);

foreach ($ex_array as $key => $ex_ip) {

if ($ip_address == $ex_ip) $record_session = false;

}

}

 

//EXCLUDE ip ranges

$hostagent = $_SERVER['REMOTE_ADDR'];

$host_here = false;

$hostarr = array("204.13.162.", "62.163.164.", "66.103.242.");

foreach ($hostarr as $hostbot) {

if (eregi($hostbot, $hostagent)) {

$host_here = true;

}

}

if ($host_here) {

$record_session = false;

}

 

//EXCLUDE ip ranges

 

//EXCLUDE BOTS BEGIN - REMOVE THIS LINE IF YOU WANT TO EXCLUDE BOTS FROM THE STATS

$user_agent = strtolower(getenv('HTTP_USER_AGENT'));

$spider_flag = false;

 

if (tep_not_null($user_agent)) {

$spiders = file(DIR_WS_INCLUDES . 'spiders.txt');

 

for ($i=0, $n=sizeof($spiders); $i<$n; $i++) {

if (tep_not_null($spiders[$i])) {

if (is_integer(strpos($user_agent, trim($spiders[$i])))) {

$spider_flag = true;

break;

}

}

}

}

 

if ($spider_flag == true) {

$record_session = false;

}

 

//EXCLUDE BOTS END OF SECTION - REMOVE THIS LINE IF YOU WANT TO EXCLUDE BOTS FROM THE STATS

 

//////////////////////////////////////////////////////////////////////

Link to comment
Share on other sites

i relaesed 3.2 version based on the 3.1a version:

 

- changed hard coded englsih by define in the language file

- cosmetic changes for strong caracteres

- few langauge correction

- commented the support links to gain palce in the admin webpage

-> the several languages need to finished to translate

 

 

i hope equila release a new version with fon ip block new improvement ..

MS2

Link to comment
Share on other sites

Hi all!

 

I downloaded and installed this great contrib yesterday and I get no Warnings and everything seems to work fine but this is how the admin section looks like:

 

dump1.gif

 

It holds no records as you can see. What can be the problem?

 

 

This is how the database tables look like:

dump2.gif

 

MySQL-version 4.0.25

Link to comment
Share on other sites

Help!!!

 

I made the updated equila recomended.. Only uploading the file inside the class folder...

 

But my site broke and only shows this message... :(

 

1054 - Unknown column 'browser_string' in 'where clause'

 

select * from supertracker where browser_string ='Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8) Gecko/20051111 Firefox/1.5' and ip_address like '80.59%' and last_click > '2006-01-13 12:18:53'

 

[TEP STOP]

 

What it means??

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...