self::$config->secret_key, 'response' => $response, 'remoteip' => \RX_CLIENT_IP, )); } catch (\Requests_Exception $e) { throw new Rhymix\Framework\Exception('recaptcha.msg_recaptcha_connection_error'); } $verify = @json_decode($verify_request->body, true); if (!$verify || !$verify['success']) { throw new Rhymix\Framework\Exception('recaptcha.msg_recaptcha_server_error'); } if ($verify && isset($verify['error-codes']) && in_array('invalid-input-response', $verify['error-codes'])) { throw new Rhymix\Framework\Exception('recaptcha.msg_recaptcha_invalid_response'); } $_SESSION['recaptcha_authenticated'] = true; } public function __construct() { if (!self::$scripts_added) { self::$scripts_added = true; Context::loadFile(array('./modules/spamfilter/tpl/js/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++); } }