self::$config->secret_key, 'response' => $response, 'remoteip' => \RX_CLIENT_IP, )); } catch (\Requests_Exception $e) { return new Object(-1, lang('recaptcha.msg_recaptcha_connection_error')); } $verify = @json_decode($verify_request->body, true); if ($verify && isset($verify['error-codes']) && in_array('invalid-input-response', $verify['error-codes'])) { return new Object(-1, lang('recaptcha.msg_recaptcha_invalid_response')); } elseif (!$verify || !$verify['success'] || (isset($verify['error-codes']) && $verify['error-codes'])) { return new Object(-1, lang('recaptcha.msg_recaptcha_server_error')); } else { $_SESSION['recaptcha_authenticated'] = true; return true; } } public function __construct() { if (!self::$scripts_added) { self::$scripts_added = true; Context::loadFile(array('./addons/recaptcha/recaptcha.js', 'body')); Context::addHtmlFooter(''); $html = '
'; $html = sprintf($html, escape(self::$config->site_key), self::$config->theme ?: 'light', self::$config->size ?: 'normal'); Context::addHtmlFooter($html); } } public function __toString() { return sprintf('', self::$instances_inserted++); } }