diff options
| author | Meik Sievertsen <acydburn@phpbb.com> | 2003-09-09 07:02:57 +0000 |
|---|---|---|
| committer | Meik Sievertsen <acydburn@phpbb.com> | 2003-09-09 07:02:57 +0000 |
| commit | a363e8dcdb52558366d6242caf3d22b93cb8ce09 (patch) | |
| tree | b5fed98e5b7e96c019073b70b38fa55d3945ef71 /phpBB | |
| parent | 08161e09e21b0e002325550db8bf653a72c8d362 (diff) | |
| download | forums-a363e8dcdb52558366d6242caf3d22b93cb8ce09.tar forums-a363e8dcdb52558366d6242caf3d22b93cb8ce09.tar.gz forums-a363e8dcdb52558366d6242caf3d22b93cb8ce09.tar.bz2 forums-a363e8dcdb52558366d6242caf3d22b93cb8ce09.tar.xz forums-a363e8dcdb52558366d6242caf3d22b93cb8ce09.zip | |
fixed censoring (quote post, word boundaries, attachment comments)
git-svn-id: file:///svn/phpbb/trunk@4492 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
| -rw-r--r-- | phpBB/includes/functions.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/functions_display.php | 11 | ||||
| -rw-r--r-- | phpBB/posting.php | 16 |
3 files changed, 18 insertions, 11 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index c322c58779..f55eda4b5e 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -739,7 +739,7 @@ function obtain_word_list(&$censors) { do { - $censors['match'][] = '#(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')#i'; + $censors['match'][] = '#\b(' . str_replace('\*', '\w*?', preg_quote($row['word'], '#')) . ')\b#i'; $censors['replace'][] = $row['replacement']; } while ($row = $db->sql_fetchrow($result)); diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 9c6d0fd844..e48249bdfc 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -290,10 +290,17 @@ function display_forums($root_data = '', $display_moderators = TRUE) function display_attachments($attachment_data, &$update_count, $force_physical = false) { global $extensions, $template; - global $config, $user, $phpbb_root_path, $phpEx, $SID; + global $config, $user, $phpbb_root_path, $phpEx, $SID, $censors; + if (empty($censors)) + { + $censors = array(); + obtain_word_list($censors); + } + if (empty($extensions) || !is_array($extensions)) { + $extensions = array(); obtain_attach_extensions($extensions); } @@ -323,7 +330,7 @@ function display_attachments($attachment_data, &$update_count, $force_physical = $filesize = ($filesize >= 1048576) ? round((round($filesize / 1048576 * 100) / 100), 2) : (($filesize >= 1024) ? round((round($filesize / 1024 * 100) / 100), 2) : $filesize); $display_name = $attachment['real_filename']; - $comment = str_replace("\n", '<br />', $attachment['comment']); + $comment = (sizeof($censors)) ? preg_replace($censors['match'], $censors['replace'], str_replace("\n", '<br />', $attachment['comment'])) : str_replace("\n", '<br />', $attachment['comment']); $denied = FALSE; diff --git a/phpBB/posting.php b/phpBB/posting.php index c79edcebc1..fdabc7cb08 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -119,6 +119,12 @@ switch ($mode) trigger_error($user->lang['NO_MODE']); } +if (empty($censors)) +{ + $censors = array(); + obtain_word_list($censors); +} + if ($sql != '') { $result = $db->sql_query($sql); @@ -749,12 +755,6 @@ if ($submit || $preview || $refresh) // Preview if (!sizeof($error) && $preview) { - if (empty($censors)) - { - $censors = array(); - obtain_word_list($censors); - } - $post_time = ($mode == 'edit') ? $post_time : $current_time; $preview_subject = (sizeof($censors)) ? preg_replace($censors['match'], $censors['replace'], $subject) : $subject; @@ -824,13 +824,13 @@ if (count($poll_options)) if ($mode == 'quote' && !$preview && !$refresh) { - $post_text = '[quote="' . $quote_username . '"]' . trim($post_text) . "[/quote]\n"; + $post_text = '[quote="' . $quote_username . '"]' . ((sizeof($censors)) ? preg_replace($censors['match'], $censors['replace'], trim($post_text)) : trim($post_text)) . "[/quote]\n"; } if (($mode == 'reply' || $mode == 'quote') && !$preview && !$refresh) { - $post_subject = ((!preg_match('/^Re:/', $post_subject)) ? 'Re: ' : '') . $post_subject; + $post_subject = ((!preg_match('/^Re:/', $post_subject)) ? 'Re: ' : '') . ((sizeof($censors)) ? preg_replace($censors['match'], $censors['replace'], $post_subject) : $post_subject); } |
