recatpcha v2

Post Reply
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

recatpcha v2

Post by ulan »

в реализации, которая в вики, ответ рекапчи 3 кладется в поле $_POST['recaptcha]'

для рекапчи 2 ответ рекапчи кладется в $_POST['g-recaptcha-response']

просьба или добавить еще одну рекапчту в2

или попробывать сделать так
просто пытаться достать из 2х источников

$token = null;
foreach(['recaptcha', 'g-recaptcha-response'] as $key){
if(isset($_POST[$key]){
$token = $_POST[$key];
break;
}
}

но второй вариант менее предпочтительный тем что у гугла для в2 и в3 ключи разные( и можно юзать только одно что то
admin
Site Admin
Posts: 37250
Joined: Wed Sep 10, 2008 11:43 am

Re: recatpcha v2

Post by admin »

все оказалось проще

data-callback callback

Optional. The name of your callback function, executed when the user submits a successful response. The g-recaptcha-response token is passed to your callback.

те прямо в JS можно указать recaptcha и все сразу заработает

я правда v2 не пользовался, если не заработает - скидывайте где тестируется
Don't forget to run script update
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: recatpcha v2

Post by ulan »

ну вот и все
несмотря на совпадение урлов проверки пытаться мимикрировать в2 под в3 бесполезно
ибо там вот такие ответы

успешно

Array
(
[success] => 1
[challenge_ts] => 2023-01-16T14:31:03Z
[hostname] => host.com
)


ошибка

Array
(
[success] =>
[error-codes] => Array
(
[0] => timeout-or-duplicate
)

)

там принципиально нет никакого score

то есть без правки сервера не обойтись
а там можно создать параллельные пары ключей для в2/в3

или же комбинированный в2+в3 и отличать их по имени поля (для в2 это дефолтно $_POST['g-recaptcha-response']) и при одинаковой проверке по разному интерпретировать результаты нужно
ulan
Posts: 1437
Joined: Fri Nov 23, 2018 2:49 pm

Re: recatpcha v2

Post by ulan »

v3
Image
admin
Site Admin
Posts: 37250
Joined: Wed Sep 10, 2008 11:43 am

Re: recatpcha v2

Post by admin »

добавил в ап

Use Captcha on Comments and contect form? = yes, v2

форма получается вида

Code: Select all

  <head>
    <title> <!--GALLERY_SLUG--> with reCAPTCHA</title>


    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>

 err: <!--ERROR-->

<FORM name="add_comment" method="POST">
<input type="hidden" name="action" value="add_comment">

<div class="g-recaptcha" data-sitekey="<!--TUBE_RECAPTCHA_SITE_KEY-->"></div>


<label>Name:</label> <input class="s_input" type="text" name='username' id='username' value="">
<br>

 <textarea class="s_text" class="ph2" name='comment' id='comment' rows=5 cols=35 value="Leave Your Comments Here"></textarea>

<input type=submit value='Send comment' > 

</form>


Don't forget to run script update
Post Reply