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", '
', $attachment['comment']);
+ $comment = (sizeof($censors)) ? preg_replace($censors['match'], $censors['replace'], str_replace("\n", '
', $attachment['comment'])) : str_replace("\n", '
', $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);
}