From 89f70673779f1908c8f000c5c053bb377e253254 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 9 Jun 2014 15:55:04 +0200 Subject: [ticket/11711] Inform user of unsupported characters while posting PHPBB3-11711 --- phpBB/includes/message_parser.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'phpBB/includes/message_parser.php') diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php index 6d3907880e..eed892986e 100644 --- a/phpBB/includes/message_parser.php +++ b/phpBB/includes/message_parser.php @@ -1194,6 +1194,19 @@ class parse_message extends bbcode_firstpass } } + // Check for out-of-bounds characters that are currently + // not supported by utf8_bin + if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $this->message, $matches)) + { + $character_list = ''; + foreach ($matches[0] as $cur_match) + { + $character_list .= $cur_match . '
'; + } + $this->warn_msg[] = $user->lang('UNSUPPORTED_CHARACTERS', $character_list); + return (!$update_this_message) ? $return_message : $this->warn_msg; + } + // Check for "empty" message. We do not check here for maximum length, because bbcode, smilies, etc. can add to the length. // The maximum length check happened before any parsings. if ($mode === 'post' && utf8_clean_string($this->message) === '') -- cgit v1.2.1 From b8151b1299c02506ffa0d665461d85e32cd4cd10 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 9 Jun 2014 18:56:13 +0200 Subject: [ticket/11711] Improve checks for unsupported characters and check subject PHPBB3-11711 --- phpBB/includes/message_parser.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'phpBB/includes/message_parser.php') diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php index eed892986e..8965b50667 100644 --- a/phpBB/includes/message_parser.php +++ b/phpBB/includes/message_parser.php @@ -1198,13 +1198,9 @@ class parse_message extends bbcode_firstpass // not supported by utf8_bin if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $this->message, $matches)) { - $character_list = ''; - foreach ($matches[0] as $cur_match) - { - $character_list .= $cur_match . '
'; - } - $this->warn_msg[] = $user->lang('UNSUPPORTED_CHARACTERS', $character_list); - return (!$update_this_message) ? $return_message : $this->warn_msg; + $character_list = implode('
', $matches[0]); + $this->warn_msg[] = $user->lang('UNSUPPORTED_CHARACTERS_MESSAGE', $character_list); + return $update_this_message ? $this->warn_msg : $return_message; } // Check for "empty" message. We do not check here for maximum length, because bbcode, smilies, etc. can add to the length. -- cgit v1.2.1 From 5ee7f20f4ee110c2ae0b122e9efbd4fabf669581 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 10 Jun 2014 15:51:25 +0200 Subject: [ticket/11711] Improve coding and comments of character check PHPBB3-11711 --- phpBB/includes/message_parser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/includes/message_parser.php') diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php index 8965b50667..9d95620e0f 100644 --- a/phpBB/includes/message_parser.php +++ b/phpBB/includes/message_parser.php @@ -1195,7 +1195,7 @@ class parse_message extends bbcode_firstpass } // Check for out-of-bounds characters that are currently - // not supported by utf8_bin + // not supported by utf8_bin in MySQL if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $this->message, $matches)) { $character_list = implode('
', $matches[0]); -- cgit v1.2.1