【发布时间】:2020-05-06 03:52:52
【问题描述】:
我有一个带有验证码的工作表。当我加载网页并单击提交而不选中该框时,会显示警报(单击机器人),但是如果我让验证码过期并再次单击提交,则不会再弹出警报。以下代码是否有问题或有任何重写方法?
<script>
window.onload = function() {
var recaptcha = document.forms["form"]["g-recaptcha-response"];
recaptcha.required = true;
recaptcha.oninvalid = function(e) {
alert("Please click on i am not a robot");
}
}
</script>
<script src="https://www.google.com/recaptcha/api.js"></script>
<div class="g-recaptcha" data-sitekey="xxx" data-callback="recaptcha"></div>
请看一下我的服务器端 php。这几天我多次尝试添加数据过期回调,但都无法成功。
$recaptcha_secret = "xxx";
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."&response=".$_POST['g-recaptcha-response']);
$response = json_decode($response, true);
if($response["success"] === true) {
mail($to, $subject, $body, "From:" . $email);
}
else
{
return false;
}
echo 'success';
}
【问题讨论】:
标签: javascript php