#javascript #php #recaptcha
#javascript #php #recaptcha
Вопрос:
У меня следующая проблема со страницей, которая работала с reCAPTCHA v2 и больше не работает
По какой-то причине $ _POST [‘g-recaptcha-response’] приходит пустым в файл, который проверяет данные после отправки в форме
В пользовательской панели www.google.com/recaptcha / веб-страница добавлена правильно, и ключи проверены на правильность. Дело в том, что когда вы проверяете проверку «Я не робот», текстовая область g-recaptcha-response должна обновляться кодом, который поступает из Google, но этот код остается пустым.
<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px;
resize: none; display: none;"></textarea>
И я думаю, это причина, по которой он приходит пустым
код моей формы
<form action="votaciones.php" method="post" class="form" role="form" id="login">
<div class="form-group">
<label for="user" class="form-label"><?= _("Usuario") ?> : </label>
<input type="text" id="user" name="user" class="form-control" placeholder="<?= _("Usuario") ?> " required autofocus/>
</div>
<div class="form-group">
<label for="user" class="form-label"><?= _("Password") ?> : </label>
<input type="password" id="pass" name="pass" class="form-control" placeholder="<?= _("Password") ?> " required />
</div>
<div class="form-group">
<div class="g-recaptcha" data-sitekey="<?php echo "$reCAPTCHA_site_key"; ?>"></div>
</div>
<div class="form-group">
<div class="text-center">
<button class="btn btn-start-order" type="submit"><?= _("Acceder") ?> </button>
</div>
</div>
</form>
<script src='https://www.google.com/recaptcha/api.js' ></script>
и один из PHP, на который поступают данные,
if (isset($_POST['g-recaptcha-response']) amp;amp; !empty($_POST['g-recaptcha-response'])) {
// Google reCAPTCHA API secret key
$secretKey = $reCAPTCHA_secret_key;
// Verify the reCAPTCHA response
$verifyResponse = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."amp;response=".$_POST['g-recaptcha-response']."amp;remoteip=".$_SERVER['REMOTE_ADDR']);
// Decode json data
$responseKeys = json_decode($verifyResponse, true);
// should return JSON with success as true
if ($responseKeys["success"]) {
//Captcha correcto
$validoCaptcha = true;
} else {
// eres un robot, asi que terminamos
$validoCaptcha = false;
Header("Location: $url_vot/index.php?error_login=10");
exit;
}
}else{
echo "no llego" .$_POST['g-recaptcha-response'];
}
}
Очевидно, что он выводит «no llego» и не отображает сообщение, потому что оно пустое
Я рассмотрел другие подобные вопросы и попробовал решения, но они не решают проблему для меня
Для макета я использую bootstrap, хотя я не думаю, что это влияет
Кто-нибудь может мне помочь? пожалуйста, я застрял на несколько дней, и я не понимаю, почему он не обновляет эту текстовую область
Комментарии:
1. Вы превысили бесплатную квоту recapcha в месяц? Просто хочу дважды подтвердить
2. Плата за месяц в reCAPTCHA не взимается