[英]Google reCaptcha v2 - check captcha is completed before form submission
在提交表单之前检查用户是否确实完成了验证码的最佳做法是什么?
从文档中,我可以看到有2个回调函数data-callback和data-expired-callback。
计划是在成功完成或到期时将布尔javascript变量设置为true / false,然后在提交表单之前检查该变量是否为true。
从用户的角度来看,这将确保用户在提交前填写验证码。
恶意用户可能会覆盖javascript变量,但服务器端验证码验证可以防止这种情况。
首先,必须在form
中放置onsubmit="return check()"
。 这意味着当您提交表单时,在发送数据之前它将执行名为check()
的函数。 如果函数返回false
,则不会提交表单。 它看起来像这样:
<form action="page.php" method="POST" name="form" onsubmit="return checkCaptcha ()">
然后,您便有了功能:
<script language="javascript">
function checkCaptcha ()
{
var captcha = document.getElementById('captcha ').value;
if (captcha == "" || captcha == " ")
{
alert("please fill the captcha ");
return false;
}
else
if (captcha .length != 7)
{
return false
} // and so on
else
{
// if everything is ok you can submit
return true;
}
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.