mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
Fix Bug #53245 - Correct regular expression escaping and only splitting keywords on space and "|"
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@10240 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
df5fa06035
commit
87e717ae87
1 changed files with 9 additions and 2 deletions
|
@ -2549,17 +2549,24 @@ function view_log($mode, &$log, &$log_count, $limit = 0, $offset = 0, $forum_id
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$keywords = preg_split('#[\s+\-|*()]+#u', utf8_strtolower(preg_quote($keywords, '#')), 0, PREG_SPLIT_NO_EMPTY);
|
// Use no preg_quote for $keywords because this would lead to sole backslashes being added
|
||||||
|
// We also use an OR connection here for spaces and the | string. Currently, regex is not supported for searching (but may come later).
|
||||||
|
$keywords = preg_split('#[\s|]+#u', utf8_strtolower($keywords), 0, PREG_SPLIT_NO_EMPTY);
|
||||||
$sql_keywords = '';
|
$sql_keywords = '';
|
||||||
|
|
||||||
if (!empty($keywords))
|
if (!empty($keywords))
|
||||||
{
|
{
|
||||||
$keywords_pattern = '#' . implode('|', $keywords) . '#ui';
|
$keywords_pattern = array();
|
||||||
|
|
||||||
|
// Build pattern and keywords...
|
||||||
for ($i = 0, $num_keywords = sizeof($keywords); $i < $num_keywords; $i++)
|
for ($i = 0, $num_keywords = sizeof($keywords); $i < $num_keywords; $i++)
|
||||||
{
|
{
|
||||||
|
$keywords_pattern[] = preg_quote($keywords[$i], '#');
|
||||||
$keywords[$i] = $db->sql_like_expression($db->any_char . $keywords[$i] . $db->any_char);
|
$keywords[$i] = $db->sql_like_expression($db->any_char . $keywords[$i] . $db->any_char);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$keywords_pattern = '#' . implode('|', $keywords_pattern) . '#ui';
|
||||||
|
|
||||||
$operations = array();
|
$operations = array();
|
||||||
foreach ($user->lang as $key => $value)
|
foreach ($user->lang as $key => $value)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue