From a7d619b20829a03d225af94e1bb91c693a265dae Mon Sep 17 00:00:00 2001 From: gRoussac Date: Thu, 5 Sep 2013 18:39:07 +0200 Subject: [PATCH] [-] MO : fix bug #PSCFV-9906 again, bad url parsing --- modules/sekeywords/sekeywords.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/sekeywords/sekeywords.php b/modules/sekeywords/sekeywords.php index 180b5d46d..9a77ca7a9 100644 --- a/modules/sekeywords/sekeywords.php +++ b/modules/sekeywords/sekeywords.php @@ -173,16 +173,17 @@ class SEKeywords extends ModuleGraph if (strstr($parsedUrl['host'], $host)) { $kArray = array(); - preg_match('/[^a-z]'.$varname.'=.+\&'.'/U', $parsedUrl['query'], $kArray); + preg_match('/[^a-zA-Z&]?'.$varname.'=.*\&'.'/U', $parsedUrl['query'], $kArray); if (!isset($kArray[0]) || empty($kArray[0])) - preg_match('/[^a-z]'.$varname.'=.+$'.'/', $parsedUrl['query'], $kArray); + preg_match('/[^a-zA-Z&]?'.$varname.'=.*$'.'/', $parsedUrl['query'], $kArray); if (!isset($kArray[0]) || empty($kArray[0])) return false; if ($kArray[0][0] == '&' && Tools::strlen($kArray[0]) == 1) return false; + return urldecode(str_replace('+', ' ', ltrim(substr(rtrim($kArray[0], '&'), strlen($varname) + 1), '='))); } }