Проблема с подключением 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>

Что я тут увидел:

  1. Форма не обёрнута в form> </form
  2. 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.введите сюда описание изображениявведите сюда описание изображениявведите сюда описание изображения Подскажите что не так я сделал и где искать причину, если потребуется - дополню вопрос рабочим кодом другой заявки, я уже подумываю оттуда взять и переставить во все формы. Спасибо!


Ответы (0 шт):