diff --git a/phpBB/includes/captcha/plugins/captcha_abstract.php b/phpBB/includes/captcha/plugins/captcha_abstract.php index c6de2ff887..86ecdaf97e 100644 --- a/phpBB/includes/captcha/plugins/captcha_abstract.php +++ b/phpBB/includes/captcha/plugins/captcha_abstract.php @@ -178,7 +178,7 @@ class phpbb_default_captcha return; } - function validate() + function validate($data = false) { global $config, $db, $user; @@ -344,7 +344,7 @@ class phpbb_default_captcha function is_solved() { - if ($this->solved === 0) + if (request_var('confirm_code', false) && $this->solved === 0) { $this->validate(); } diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index a802a35b87..da62061a72 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -222,8 +222,8 @@ class ucp_register if ($config['enable_confirm']) { - $vc_response = $captcha->validate(); - if (!$captcha->is_solved() && $vc_response) + $vc_response = $captcha->validate($data); + if ($vc_response) { $error[] = $vc_response; } diff --git a/phpBB/posting.php b/phpBB/posting.php index 9d06ac3e2c..598f500bc4 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -772,7 +772,12 @@ if ($submit || $preview || $refresh) if ($config['enable_post_confirm'] && !$user->data['is_registered'] && in_array($mode, array('quote', 'post', 'reply'))) { - $vc_response = $captcha->validate(); + $captcha_data = array( + 'message' => utf8_normalize_nfc(request_var('message', '', true)), + 'subject' => utf8_normalize_nfc(request_var('subject', '', true)), + 'username' => utf8_normalize_nfc(request_var('username', '', true)), + ); + $vc_response = $captcha->validate($captcha_data); if ($vc_response) { $error[] = $vc_response;