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), '='))); }