Установил 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);
if (!is_null(Core_Array::getPost($oForm->button_name)))
{
if (Core_Array::getPost('g-recaptcha-response'))
{
$sResponse = Core_Array::getPost('g-recaptcha-response');
$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]
$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);
if (!is_null(Core_Array::getPost($oForm->button_name)))
{
if (Core_Array::getPost('g-recaptcha-response'))
{
$sResponse = Core_Array::getPost('g-recaptcha-response');
$Form_Controller_Show
->values($_POST + $_FILES);
$Form_Controller_Show->addEntity(Core::factory('Core_Xml_Entity')
->name('error')->value("Просим подтвердить что Вы не робот!"
);
}
Странно, по логике все должно работать. Сморю у вас форма данные отправляются 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]
Странно, по логике все должно работать. Сморю у вас форма данные отправляются 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();
}
});
}
});
stdClass Object
У меня та же проблема, вот что приходит от гугла, все делал по инструкции с документации, и кстате обычная каптча у меня отображается с 5 попытки