From 0765dde5c04913115b9bd38bb0c9e469a292adeb Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 16 May 2013 11:24:44 +0200 Subject: [PATCH] [-] CORE : TRACKING_DIRECT_TRAFFIC not respected --- classes/ConnectionsSource.php | 50 ++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/classes/ConnectionsSource.php b/classes/ConnectionsSource.php index 183630682..fa3151aca 100644 --- a/classes/ConnectionsSource.php +++ b/classes/ConnectionsSource.php @@ -63,34 +63,36 @@ class ConnectionsSourceCore extends ObjectModel return false; if (!isset($_SERVER['HTTP_REFERER']) && !Configuration::get('TRACKING_DIRECT_TRAFFIC')) return false; - - $source = new ConnectionsSource(); - if (isset($_SERVER['HTTP_REFERER']) && Validate::isAbsoluteUrl($_SERVER['HTTP_REFERER'])) - { - $parsed = parse_url($_SERVER['HTTP_REFERER']); - $parsed_host = parse_url(Tools::getProtocol().Tools::getHttpHost(false, false).__PS_BASE_URI__); - if ((!isset($parsed['path']) ||!isset($parsed_host['path'])) || (preg_replace('/^www./', '', $parsed['host']) == preg_replace('/^www./', '', Tools::getHttpHost(false, false))) - && !strncmp($parsed['path'], $parsed_host['path'], strlen(__PS_BASE_URI__))) - return false; - if (Validate::isAbsoluteUrl(strval($_SERVER['HTTP_REFERER']))) + if(Configuration::get('TRACKING_DIRECT_TRAFFIC')) + { + $source = new ConnectionsSource(); + if (isset($_SERVER['HTTP_REFERER']) && Validate::isAbsoluteUrl($_SERVER['HTTP_REFERER'])) { - $source->http_referer = substr(strval($_SERVER['HTTP_REFERER']), 0, ConnectionsSource::$uri_max_size); - $source->keywords = substr(trim(SearchEngine::getKeywords(strval($_SERVER['HTTP_REFERER']))), 0, ConnectionsSource::$uri_max_size); - if (!Validate::isMessage($source->keywords)) + $parsed = parse_url($_SERVER['HTTP_REFERER']); + $parsed_host = parse_url(Tools::getProtocol().Tools::getHttpHost(false, false).__PS_BASE_URI__); + if ((!isset($parsed['path']) ||!isset($parsed_host['path'])) || (preg_replace('/^www./', '', $parsed['host']) == preg_replace('/^www./', '', Tools::getHttpHost(false, false))) + && !strncmp($parsed['path'], $parsed_host['path'], strlen(__PS_BASE_URI__))) return false; + if (Validate::isAbsoluteUrl(strval($_SERVER['HTTP_REFERER']))) + { + $source->http_referer = substr(strval($_SERVER['HTTP_REFERER']), 0, ConnectionsSource::$uri_max_size); + $source->keywords = substr(trim(SearchEngine::getKeywords(strval($_SERVER['HTTP_REFERER']))), 0, ConnectionsSource::$uri_max_size); + if (!Validate::isMessage($source->keywords)) + return false; + } } + + $source->id_connections = (int)$cookie->id_connections; + $source->request_uri = Tools::getHttpHost(false, false); + if (isset($_SERVER['REDIRECT_URL'])) + $source->request_uri .= strval($_SERVER['REDIRECT_URL']); + elseif (isset($_SERVER['REQUEST_URI'])) + $source->request_uri .= strval($_SERVER['REQUEST_URI']); + if (!Validate::isUrl($source->request_uri)) + $source->request_uri = ''; + $source->request_uri = substr($source->request_uri, 0, ConnectionsSource::$uri_max_size); + return $source->add(); } - - $source->id_connections = (int)$cookie->id_connections; - $source->request_uri = Tools::getHttpHost(false, false); - if (isset($_SERVER['REDIRECT_URL'])) - $source->request_uri .= strval($_SERVER['REDIRECT_URL']); - elseif (isset($_SERVER['REQUEST_URI'])) - $source->request_uri .= strval($_SERVER['REQUEST_URI']); - if (!Validate::isUrl($source->request_uri)) - $source->request_uri = ''; - $source->request_uri = substr($source->request_uri, 0, ConnectionsSource::$uri_max_size); - return $source->add(); } public static function getOrderSources($id_order)