mk3mk
@mk3mk
занимаюсь вёрсткой (иногда)

Не получается сделать рекапчу на форме?

Всем привет!
Не получается сделать рекапчу на форме.
Site Key я ввел в код формы.
На форме Рекапча появилась. Но она еще не работает.
А вот Secret Key не пойму куда писать. У нас в action прописан другой сайт, к которому у меня нет доступа. Тогда я не смогу прописать Secret Key ?
Вот код формы
<form id="form-to-join-webinar" class="form-to-join-webinar01" method='POST' action='https://app.syncrm.ru/web_forms/order'>


<input type='text' name='contact[first_name]' value='' placeholder='Имя'/>

<input type='text' name='contact[email]' value='' placeholder='E-mail'/>

<input type='text' name='contact[general_phone]' value='' placeholder='Телефон'/>


  <!-- Тип -->
  <input type='hidden' name='contact[type]' value='3315' />
  <!-- Название -->
  <input type='hidden' name='deal[name]' value='' />
  <!-- Сумма -->
  <input type='hidden' name='deal[amount]' value='' />
  <!-- Воронка -->
  <input type='hidden' name='deal[stage_category]' value='913' />
  <!-- обязательные поля. не удалять! -->
  <input type='hidden' name='redirect_url' value='https://app.syncrm.ru/accounts/sign_up' />
  <input type='hidden' name='token' value='0068b9c09f3a86f243dd8d243120631e' />
  <input type='hidden' name='responsible_id' value='564' />
  <br />

<div class="g-recaptcha" data-sitekey="6LfIFsYUAAAAAP6lIsCImScD0awQP9shuq5-U3Wr" ></div>

  <br />
  <input id="btn-subm" type='submit' value='Отправить заявку' />
</form>
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
JackWilliams
@JackWilliams
SecretKey должен хранится исключительно на сервере. И на сервере рекапча проверяется при помощи sitekey и secret key. Вот примерно как это происходит:
function v2_captcha_token_checker($v2_captcha_tokens, $secret_key){

    // return false;
    // return true;

    $ch = curl_init();

    $data = array(

      'secret' => $secret_key,
      'response' => $v2_captcha_token

    );

    curl_setopt_array($ch, [

        CURLOPT_HEADER => 0,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
        CURLOPT_POSTFIELDS => http_build_query($data)

      ]);


  $response = json_decode(curl_exec($ch), true);


  if($response['success']){


    return true;

  }
  else{

    return false;

  }

}
function captcha_response_check()
  {

      include ("captcha_v2_invisible_cnf.php");
      global $answer;

      if (

      (!isset($_POST['captcha_v2_invisible_token'])) ||

      ($_POST['captcha_v2_invisible_token'] == ""))
      {

          $answer["status"] = "ERROR";
          $answer["message"] = 'BAD REQUEST: POST captcha_v2_invisible_token param is required';
          http_response_code(400);

          echo json_encode($answer);
          exit;

      }

      $captcha_v2_invisible_token = $_POST['captcha_v2_invisible_token'];
      $secret_key = $captcha_v2_invisible_cnf['secret_key'];

      $captcha_v2_invisible_token_is_ok = v2_captcha_token_checker($captcha_v2_invisible_token, $secret_key);

      if ($captcha_v2_invisible_token_is_ok)
      {

          $answer["captcha_v2_invisible_token_is_valid"] = true;

      }
      else
      {

          $answer["captcha_v2_invisible_token_is_valid"] = false;
          http_response_code(400);
          $answer["status"] = "ERROR";
          $answer["message"] = 'captcha v2 invisible token is not valid';

          echo json_encode($answer);
          exit;

      }

  }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы