1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-06 07:35:29 +02:00

Merge branch 'ticket/cs278/9760' into develop-olympus

* ticket/cs278/9760:
  [ticket/9760] Remove unrestricted wildcards from search terms.
This commit is contained in:
Andreas Fischer 2010-08-10 16:04:49 +02:00
commit d66aadc33f

View File

@ -83,7 +83,9 @@ class fulltext_native extends search_backend
{ {
global $db, $user, $config; global $db, $user, $config;
$keywords = trim($this->cleanup($keywords, '+-|()*')); $tokens = '+-|()*';
$keywords = trim($this->cleanup($keywords, $tokens));
// allow word|word|word without brackets // allow word|word|word without brackets
if ((strpos($keywords, ' ') === false) && (strpos($keywords, '|') !== false) && (strpos($keywords, '(') === false)) if ((strpos($keywords, ' ') === false) && (strpos($keywords, '|') !== false) && (strpos($keywords, '(') === false))
@ -114,6 +116,15 @@ class fulltext_native extends search_backend
case ' ': case ' ':
$keywords[$i] = '|'; $keywords[$i] = '|';
break; break;
case '*':
if ($i === 0 || ($keywords[$i - 1] !== '*' && strcspn($keywords[$i - 1], $tokens) === 0))
{
if ($i === $n - 1 || ($keywords[$i + 1] !== '*' && strcspn($keywords[$i + 1], $tokens) === 0))
{
$keywords = substr($keywords, 0, $i) . substr($keywords, $i + 1);
}
}
break;
} }
} }
else else