diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index b52f0fa54c..df5d0aeeab 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -36,7 +36,7 @@ class parse_message $match = array(); $replace = array(); - $match[] = '#sid=[a-z0-9]+&?#'; + $match[] = '#sid=[a-z0-9]*?&?#'; $replace[] = ''; $match[] = "#([\r\n][\s]+){3,}#"; $replace[] = "\n\n"; @@ -94,7 +94,7 @@ class parse_message { global $config, $user; - if ( $html ) + if ($html) { // If $html is true then "allowed_tags" are converted back from entity // form, others remain @@ -103,7 +103,7 @@ class parse_message $match = array(); $replace = array(); - foreach ( $allowed_tags as $tag ) + foreach ($allowed_tags as $tag) { $match[] = '#<(\/?' . str_replace('*', '.*?', $tag) . ')>#i'; $replace[] = '<\1>'; @@ -128,7 +128,7 @@ class parse_message { global $config; - if ( $url ) + if ($url) { $server_protocol = ( $config['cookie_secure'] ) ? 'https://' : 'http://'; $server_port = ( $config['server_port'] <> 80 ) ? ':' . trim($config['server_port']) . '/' : '/'; @@ -138,19 +138,19 @@ class parse_message // relative urls for this board $match[] = '#' . $server_protocol . trim($config['server_name']) . $server_port . preg_replace('/^\/?(.*?)(\/)?$/', '\1', trim($config['script_path'])) . '/([^\t\n\r <"\']+)#i'; - $replace[] = '\1'; + $replace[] = '\1'; // matches a xxxx://aaaaa.bbb.cccc. ... - $match[] = '#([\n ])([\w]+?://.*?)([^\t\n\r <"\'])#ie'; - $replace[] = "'\\1' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . '\\3'"; + $match[] = '#(^|[\n ])([\w]+?://[\w\?&\#,\.\+\-!~\/=%]+)#ie'; + $replace[] = "'\\1' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . ''"; // matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing $match[] = '#(^|[\n ])(www\.[\w\-]+\.[\w\-.\~]+(?:/[^\t\n\r <"\']*)?)#ie'; - $replace[] = "'\\1' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . ''"; + $replace[] = "'\\1' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . ''"; // matches an email@domain type address at the start of a line, or after a space. $match[] = '#(^|[\n ])([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)#ie'; - $replace[] = "'\\1' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . ''"; + $replace[] = "'\\1' . ( ( strlen('\\2') > 55 ) ?substr('\\2', 0, 39) . ' ... ' . substr('\\2', -10) : '\\2' ) . ''"; $message = preg_replace($match, $replace, $message); } @@ -165,9 +165,7 @@ class parse_message } } -// Parses a given message and updates/maintains -// the fulltext word indexes NOTE this is not complete -// nor 'entirely' (!) functional ... +// Parses a given message and updates/maintains the fulltext tables class fulltext_search { function split_words(&$text) @@ -376,7 +374,7 @@ class fulltext_search $row = $db->sql_fetchrow($result); - if ( $row['total_posts'] >= 100 ) + if ($row['total_posts'] >= 100) { $sql = "SELECT word_id FROM " . SEARCH_MATCH_TABLE . " @@ -385,13 +383,13 @@ class fulltext_search $result = $db->sql_query($sql); $in_sql = ''; - while ( $row = $db->sql_fetchrow($result) ) + while ($row = $db->sql_fetchrow($result)) { $in_sql .= ( ( $in_sql != '' ) ? ', ' : '' ) . $row['word_id']; } $db->sql_freeresult($result); - if ( $in_sql ) + if ($in_sql) { $sql = "UPDATE " . SEARCH_WORD_TABLE . " SET word_common = " . TRUE . " @@ -412,7 +410,7 @@ class fulltext_search GROUP BY m.word_id"; $result = $db->sql_query($sql); - if ( $row = $db->sql_fetchrow($result) ) + if ($row = $db->sql_fetchrow($result)) { $in_sql = ''; while ( $row = $db->sql_fetchrow($result) ) @@ -421,7 +419,7 @@ class fulltext_search } $db->sql_freeresult($result); - if ( $in_sql ) + if ($in_sql) { $sql = "DELETE FROM " . SEARCH_WORD_TABLE . " WHERE word_id IN ($in_sql)"; @@ -504,8 +502,5 @@ function generate_smilies($mode) include($phpbb_root_path . 'includes/page_tail.'.$phpEx); } } -// -// END NEW CODE -// --------------------------------------------- ?> \ No newline at end of file diff --git a/phpBB/posting.php b/phpBB/posting.php index 8da84974bb..3096d6d964 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -177,7 +177,7 @@ if (isset($post)) $enable_html = (!intval($config['allow_html'])) ? 0 : ((!empty($disable_html)) ? 0 : 1); $enable_bbcode = (!intval($config['allow_bbcode'])) ? 0 : ((!empty($disable_bbcode)) ? 0 : 1); $enable_smilies = (!intval($config['allow_smilies'])) ? 0 : ((!empty($disable_smilies)) ? 0 : 1); - $enable_urls = (!empty($disable_magic_url)) ? 1 : 0; + $enable_urls = (!empty($disable_magic_url)) ? 0 : 1; $enable_sig = (empty($attach_sig) ) ? 1 : 0; // Check checksum ... don't re-parse message if the same @@ -461,7 +461,6 @@ if (isset($post)) $template->assign_vars(array( 'ERROR_MESSAGE' => $err_msg) ); - } // // PROCESS SUBMIT @@ -476,11 +475,16 @@ if (isset($post)) // // Remove encoded bbcode, urls, etc. +$server_protocol = ($config['cookie_secure']) ? 'https://' : 'http://'; +$server_port = ($config['server_port'] <> 80) ? ':' . trim($config['server_port']) . '/' : '/'; + $match = array( '#(.*?)#s', '#(.*?)#s', '#.*?#', '#.*?#', + '#.*?#', + '#.*?#', ); $replace = array( @@ -488,6 +492,8 @@ $replace = array( '[u]\1[/u]', '\1', '\1', + '\1', + $server_protocol . trim($config['server_name']) . $server_port . preg_replace('/^\/?(.*?)(\/)?$/', '\1', trim($config['script_path'])) . '/\1', ); $post_text = preg_replace($match, $replace, $post_text);