Page 1 of 1
recatpcha v2
Posted: Sat Jan 14, 2023 3:39 pm
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 ключи разные( и можно юзать только одно что то
Re: recatpcha v2
Posted: Sun Jan 15, 2023 3:20 pm
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 не пользовался, если не заработает - скидывайте где тестируется
Re: recatpcha v2
Posted: Mon Jan 16, 2023 2:42 pm
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']) и при одинаковой проверке по разному интерпретировать результаты нужно
Re: recatpcha v2
Posted: Mon Jan 16, 2023 3:07 pm
by ulan
v3

Re: recatpcha v2
Posted: Tue Jan 17, 2023 6:09 pm
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>