Проверка на прохождение Google reCaptcha

#
Проверка на прохождение Google reCaptcha
Установил Google reCaptcha в форму на страницу контакты, по примеру отсюда http://www.hostcms.ru/documentation/modules/core/captcha/
Но столкнулся со следующей проблемой, когда галочку не ставишь в "реКапче", то показывает, что сообщение успешно отправлено, но при этом оно не отправляется, так как не пройдена реКапча, при прохождении реКапчи, сообщение успешно отправляется.  То есть все работает, только не показывает сообщение: "ВЫ НЕ ЗАПОЛНИЛИ КАПЧУ" при не заполнении её .Я так понимаю, что нужно сделать проверку в обработчике формы, чтобы выводило сообщение, при незаполнении реКапчи,  помогите сделать проверку. Спасибо! Страница с капчей http://posuda-mix.ru/contact/

Прилагаю код ТДС Формы.
=============================================================================
<?php

if (Core::moduleIsActive('form'))
{
    $oForm = Core_Entity::factory('Form', Core_Array::get(Core_Page::instance()->libParams, 'formId'));

    $Form_Controller_Show = new Form_Controller_Show($oForm);

    $xslName = Core_Array::get(Core_Page::instance()->libParams, 'formXsl');
    
    $sSecretKey = "тут мой секретный ключ"; // Указывается секретный ключ reCAPTCHA

    if (!is_null(Core_Array::getPost($oForm->button_name)))
    {
        if (Core_Array::getPost('g-recaptcha-response'))
        {
            $sResponse = Core_Array::getPost('g-recaptcha-response');

            $sUrl = 'https://www.google.com/recaptcha/api/siteverify';

            $Core_Http = Core_Http::instance('curl')
            ->clear()
            ->method('POST')
            ->url($sUrl)
            ->data('secret',$sSecretKey)
            ->data('response',$sResponse)
            ->execute();

            $oAnswer = json_decode($Core_Http->getBody());            
            
            if ($oAnswer->success)
            {
                $Form_Controller_Show
                    ->values($_POST + $_FILES)
                    // 0 - html, 1- plain text
                    ->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
                    ->mailXsl(
                        Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
                    )
                    ->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'emailFieldName'))
                    ->process();
            }
            else
            {
                Core_Log::write($oAnswer->error-codes);
            }    
        }            
    }

    $Form_Controller_Show
        ->xsl(
            Core_Entity::factory('Xsl')->getByName($xslName)
        )
        ->addEntity(
            Core::factory('Core_Xml_Entity')
                ->name('site_key')->value('тут мой секретный ключ') // Указываете ключ reCAPTCHA
        )
        ->show();

}
else
{
   ?>
   <h1>Формы</h1>
   <p>Функционал недоступен, приобретите более старшую редакцию.</p>
   <p>Модуль &laquo;<a href="http://www.hostcms.ru/hostcms/modules/forms/">Формы</a>&raquo; доступен в редакциях &laquo;<a href="http://www.hostcms.ru/hostcms/editions/corporation/">Корпорация</a>&raquo;, &laquo;<a href="http://www.hostcms.ru/hostcms/editions/business/">Бизнес</a>&raquo; и &laquo;<a href="http://www.hostcms.ru/hostcms/editions/small-business/">Малый бизнес</a>&raquo;.</p>
   <?php
}
=============================================================================
#
Re: Проверка на прохождение Google reCaptcha
Deeg писал(а):
помогите сделать проверку.

Добавьте проверку после Core_Log::write($oAnswer->error-codes); что бы стало так:
else
            {
                Core_Log::write($oAnswer->error-codes);
            }
        }
        else
        {

            $Form_Controller_Show
                ->values($_POST + $_FILES);
            $Form_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')
                    ->name('error')->value("Просим подтвердить что Вы не робот!")
            );
        }
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Проверка на прохождение Google reCaptcha
Seri писал(а):
else
            {
                Core_Log::write($oAnswer->error-codes);
            }
        }
        else
        {

            $Form_Controller_Show
                ->values($_POST + $_FILES);
            $Form_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')
                ->name('error')->value("Просим подтвердить что Вы не робот!"
            );
        }


сделал так

<?php

if (Core::moduleIsActive('form'))
{
    $oForm = Core_Entity::factory('Form', Core_Array::get(Core_Page::instance()->libParams, 'formId'));

    $Form_Controller_Show = new Form_Controller_Show($oForm);

    $xslName = Core_Array::get(Core_Page::instance()->libParams, 'formXsl');
    
    $sSecretKey = "xxx"; // Указывается секретный ключ reCAPTCHA

    if (!is_null(Core_Array::getPost($oForm->button_name)))
    {
        if (Core_Array::getPost('g-recaptcha-response'))
        {
            $sResponse = Core_Array::getPost('g-recaptcha-response');

            $sUrl = 'https://www.google.com/recaptcha/api/siteverify';

            $Core_Http = Core_Http::instance('curl')
            ->clear()
            ->method('POST')
            ->url($sUrl)
            ->data('secret',$sSecretKey)
            ->data('response',$sResponse)
            ->execute();

            $oAnswer = json_decode($Core_Http->getBody());            
            
            if ($oAnswer->success)
            {
                $Form_Controller_Show
                    ->values($_POST + $_FILES)
                    // 0 - html, 1- plain text
                    ->mailType(Core_Array::get(Core_Page::instance()->libParams, 'mailType'))
                    ->mailXsl(
                        Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'notificationMailXsl'))
                    )
                    ->mailFromFieldName(Core_Array::get(Core_Page::instance()->libParams, 'emailFieldName'))
                    ->process();
            }
            else
            {
                Core_Log::write($oAnswer->error-codes);
            }  

                }
                else
                {

                    $Form_Controller_Show
                        ->values($_POST + $_FILES);
                    $Form_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')
                        ->name('error')->value("Просим подтвердить что Вы не робот!"
                    );  
        }  

    }

    $Form_Controller_Show
        ->xsl(
            Core_Entity::factory('Xsl')->getByName($xslName)
        )
        ->addEntity(
            Core::factory('Core_Xml_Entity')
                ->name('site_key')->value('xxx') // Указываете ключ reCAPTCHA
        )
        ->show();

}
else
{
    ?>
    <h1>Формы</h1>
    <p>Функционал недоступен, приобретите более старшую редакцию.</p>
    <p>Модуль &laquo;<a href="http://www.hostcms.ru/hostcms/modules/forms/">Формы</a>&raquo; доступен в редакциях &laquo;<a href="http://www.hostcms.ru/hostcms/editions/corporation/">Корпорация</a>&raquo;, &laquo;<a href="http://www.hostcms.ru/hostcms/editions/business/">Бизнес</a>&raquo; и &laquo;<a href="http://www.hostcms.ru/hostcms/editions/small-business/">Малый бизнес</a>&raquo;.</p>
    <?php
}

проверка так и не хочет работать(
#
Re: Проверка на прохождение Google reCaptcha
Deeg писал(а):
проверка так и не хочет работать(

Странно, по логике все должно работать. Сморю у вас форма данные отправляются Ajax-ом по этому надо смотреть, возможно не доходят POST данные в ТДС. Если есть активный период поддержки то обратитесь в поддержку предоставив доступ к сайту.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Проверка на прохождение Google reCaptcha
Seri писал(а):
Странно, по логике все должно работать. Сморю у вас форма данные отправляются Ajax-ом по этому надо смотреть, возможно не доходят POST данные в ТДС. Если есть активный период поддержки то обратитесь в поддержку предоставив доступ к сайту.

Да есть поддержка, но они мне примерно также ответили, что должно работать. Только не работает)
да все верно данные отправляются Ajax-ом.
Вот код:
$('#form1').validate({
        focusInvalid: true,
        errorClass: "input_error",
        submitHandler: function(form) {
            var d = $(form).serialize(),
                loader = $(form).siblings('.ajaxLoader'),
                success = $(form).siblings('.callBoxSuccess')
            ;
            
            loader.show();
            
            $.ajax({
                type: 'post',
                url: url,
                data: d,
                success: function(msg) {
                    loader.hide();
                    $(form).remove();
                    success.html("Запрос получен, в ближайшее время мы с Вами свяжемся!";
                    success.show();
                }
            });
        }
    });
#
Re: Проверка на прохождение Google reCaptcha
Deeg писал(а):
var d = $(form).serialize(),

Проверьте тогда так
console.log(d)

POST Данный действительно есть?
Также у вас
var url = './';
  когда форма должна отправить данные на /contact/
Вот мои подсказки, удачи.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Проверка на прохождение Google reCaptcha
Если не получилось то пишите помогу. Контакты ниже.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Проверка на прохождение Google reCaptcha
Seri писал(а):
Если не получилось то пишите помогу. Контакты ниже.

Написал вам в скайп
#
Re: Проверка на прохождение Google reCaptcha
stdClass Object
У меня та же проблема, вот что приходит от гугла, все делал по инструкции с документации, и кстате обычная каптча у меня отображается с 5 попытки
(
    [success] =>
    [challenge_ts] => 2017-06-26T15:49:57Z
    [hostname] => osf.com.ua
    [error-codes] => Array
        (
            [0] => timeout-or-duplicate
        )

)
#
Re: Проверка на прохождение Google reCaptcha
может быть это связанно с протоколом https ??
Авторизация