Проблема с подключением reCaptcha v2
можете ли вы мне подсказать, я совсем недавно в разработке и столкнулся со следующей проблемой. Надо подключить reCaptcha v2 на форму. На сайте имеется три формы отправки заявок. С одной из них я успешно и быстро разобрался, сделал всё по инструкции, но вот не пойму что делать со второй, она является всплывающей формой отправки заявки. Так же делаю по инструкции, но что - то не получается. Точнее капча как бы есть, как бы работает, но заявка несмотря на капчу всё равно отправляется. Высылаю код, изначально он имел вид:
<div id="forma_callback" class="forma_callback">
<div class="forma_callback_box">
<div class="forma_callback_box-content">
<form action="/blocks/ajax_callback.php" method="POST" id="form_callback" enctype='multipart/form-data'>
<input name="phone" type="text" class="phone phone_callback" placeholder="8 (000) 000-00-00"/>
<input name="button" type="submit" value="Перезвонить" onClick="forma_callback();yaCounter37817740.reachGoal ('zayvka'); return true;" id="sub_callback" class="btn_send_callback">
<label class="politic_checkbox_wrapper">
<input type="checkbox" class="politic_checkbox" checked required /> Принимаю <a href="/soglasie.pdf"
target="_blank">согласие на обработку персональных данных</a>
<div class="g-recaptcha" data-sitekey="6LcV4cIoAAAAAMzF1sIKPWexe9Gcg5rb3Wurjefe"></div>
</label>
</div>
</form>
<a href="#" class="close_forma_callback popup"></a>
</div>
</div>
Что я тут увидел:
- Форма не обёрнута в form> </form
- type = "submit" был "button", я поменял, так же не было прописано id="sub_callback"
<input name="button" type="submit" value="Перезвонить" onClick="forma_callback();yaCounter37817740.reachGoal ('zayvka'); return true;" id="sub_callback" class="btn_send_callback">
Хорошо, делаю всё как было у меня в рабочей форме, а именно помещаю всё в теги , задаю action и тд, что получается в итоге:
JS:
$("#sub_callback").on('click', function(event) {
event.preventDefault();
// Если не выбрана галочка обработки персональных данных
if(!$("#form_callback .politic_checkbox").prop("checked")) {
alert("Вы не дали согласие на обработку персональных данных!");
return;
}
var phone = $('.poprel [name = phone]').val();
$('.poprel [name = phone]').removeClass('forma_callback_input_h');
if(phone == '')
{
if(phone == '') $('.poprel [name = phone]').addClass('forma_callback_input_h');
return;
}
$("#form_callback").submit();
}) //так же пробовал без этой части кода, которая выше
//капча
$('#form_callback').submit(function(){
var response = grecaptcha.getResponse();
if(response.length == 0) {
alert('Вы не прошли проверку CAPTCHA должным образом');
return false;
}
});
HTML:
<form action="/blocks/ajax_callback.php" method="POST" id="form_callback" enctype='multipart/form-data'>
<div id="forma_callback" class="forma_callback">
<div class="forma_callback_box">
<div class="forma_callback_box-content">
<form action="/blocks/ajax_callback.php" method="POST" id="form_callback" enctype='multipart/form-data'>
<input name="phone" type="text" class="phone phone_callback" placeholder="8 (000) 000-00-00"/>
<input name="button" type="submit" value="Перезвонить" onClick="forma_callback();yaCounter37817740.reachGoal ('zayvka'); return true;" id="sub_callback" class="btn_send_callback">
<label class="politic_checkbox_wrapper">
<input type="checkbox" class="politic_checkbox" checked required /> Принимаю <a href="/soglasie.pdf"
target="_blank">согласие на обработку персональных данных</a>
<div class="g-recaptcha" data-sitekey="6LcV4cIoAAAAAMzF1sIKPWexe9Gcg5rb3Wurjefe"></div>
</label>
</div>
</form>
<a href="#" class="close_forma_callback popup"></a>
</div>
</div>
</form>
Так же прилагаю ajax_callback.php
PHP:
<?
//обработчик заказа обратного звонка
error_reporting(E_ALL);
ini_set('display_errors', 'on');
include("db.php");
include("f_data.php");
include("mailto.php");
$phone = f_data ($_POST[phone], 'text', 0);
if (isset($_COOKIE[advert])) {$advert=$_COOKIE[advert];} else {$advert="";}
$date = date("H:m d.m.Y");
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
if ($phone != false)
{
$result = mysql_query("SELECT * FROM zayvki WHERE ip='$ip' && time!='' ORDER BY id DESC");
$myrow = mysql_fetch_assoc($result);
$num_rows = mysql_num_rows($result);
if ($num_rows!=0)
{
if ((time()-$myrow[time])<=100)
{
exit;
}
}
$result_add = mysql_query ("INSERT INTO zayvki (fio,phone,mail,text,date,type,advert,ip,time)
VALUES ('Пользователь','$phone','нет','Перезвоните мне, пожалуйтса','$date','Перезвонить','$advert','$ip','$time')");
echo "ok";
$result = mysql_query("SELECT * FROM settings");
$myrow = mysql_fetch_assoc($result);
$text = "<b>Уведомляем Вас, что на сайте $_SERVER[HTTP_HOST]</b><br>
Попросили перезвонить на тел. $phone";
mailto($text,"Уведомление с сайта",$myrow[mail_admin]);
}
?>
На выходе я получаю следющее:
Капча как бы в форме есть, присутствует, даже вроде как работает,но после отправки заявки и вывода сообщения что капча не пройдена, заявка всё равно улетает в CMS.

Подскажите что не так я сделал и где искать причину, если потребуется - дополню вопрос рабочим кодом другой заявки, я уже подумываю оттуда взять и переставить во все формы. Спасибо!