From 3ca2c8da95b84e97532c9d3c2e1dd85a0cbf5c67 Mon Sep 17 00:00:00 2001 From: gRoussac Date: Wed, 4 Sep 2013 15:39:02 +0200 Subject: [PATCH] [-] BO : Fix #PSCFV-9906 could not register search engines keywords --- modules/sekeywords/sekeywords.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/sekeywords/sekeywords.php b/modules/sekeywords/sekeywords.php index 24be726ad..180b5d46d 100644 --- a/modules/sekeywords/sekeywords.php +++ b/modules/sekeywords/sekeywords.php @@ -83,7 +83,7 @@ class SEKeywords extends ModuleGraph public function hookTop($params) { - if (!isset($_SERVER['HTTP_REFERER']) || strstr($_SERVER['HTTP_REFERER'], Tools::getHttpHost(false, false))) + if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], Tools::getHttpHost(false, false) == 0)) return; if ($keywords = $this->getKeywords($_SERVER['HTTP_REFERER'])) @@ -161,6 +161,7 @@ class SEKeywords extends ModuleGraph $parsedUrl = parse_url($url); if (!isset($parsedUrl['query']) && isset($parsedUrl['fragment'])) $parsedUrl['query'] = $parsedUrl['fragment']; + if (!isset($parsedUrl['query'])) return false; @@ -173,11 +174,14 @@ class SEKeywords extends ModuleGraph { $kArray = array(); preg_match('/[^a-z]'.$varname.'=.+\&'.'/U', $parsedUrl['query'], $kArray); + if (!isset($kArray[0]) || empty($kArray[0])) preg_match('/[^a-z]'.$varname.'=.+$'.'/', $parsedUrl['query'], $kArray); + if (!isset($kArray[0]) || empty($kArray[0])) return false; - if ($kArray[0][0] == '&') + + if ($kArray[0][0] == '&' && Tools::strlen($kArray[0]) == 1) return false; return urldecode(str_replace('+', ' ', ltrim(substr(rtrim($kArray[0], '&'), strlen($varname) + 1), '='))); }