Система управления «Сайт PRO»
Версия 20240107

Класс Recaptcha

Объект $Field: Cms\Root\Form\Field\Recaptcha наследует Cms\Root\Form\Field\Base

Объект «Поле: проверка на человека (reCAPTCHA)»

Исходный код
class Recaptcha extends Base { … }

Методы

check()

$Recaptcha->check();

Проверка правильности ввода

Возвращает: string|null null – успешная проверка; string – ошибка

Исходный код
    function check() {
        if (strlen($e = \Cms\Root\Form\Field\Base::check())) return $e;
        if ($this->hidden) return;
        if (strlen($response = strval($_POST['g-recaptcha-response']))) {
            $curl = curl_init('https://www.google.com/recaptcha/api/siteverify');
            curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
                'secret' => $this->Conf()->get('recaptcha_secret'),
                'response' => $response,
                'remoteip' => $_SERVER['REMOTE_ADDR'],
            )));
            ob_start();
            @curl_exec($curl);
            $json = ob_get_clean();
            curl_close($curl);
            $data = json_decode($json, true);
            if ($data['success'] === true) return;
        }
        return $e = $this->standardError();
    }

standardError()

$Recaptcha->standardError();
Исходный код
    function standardError() {
        $label = $this->label;
        if (!strlen($label)) $label = $this->getAttribute('input-placeholder');
        if (!strlen($label)) $label = $this->getAttribute('text');
        $Main = $this->Main();
        return $Main->translate('Некорректное значение для поля') . (strlen($label) ? ' «' . strip_tags($label) . '»' : ' «' . $Main->translate('Я не робот') . '»');
    }

store()

$Recaptcha->store();

Сохранение значения поля

Исходный код
    function store() {
        return;
    }

text()

$Recaptcha->text();
Исходный код
    function text() {
        return;
    }

html()

$Recaptcha->html();
Исходный код
    function html() {
        return;
    }