我如何验证 google new recaptcha 是否被选中
How could I verify if google new recaptcha is checked
我现在正尝试在我的网页中使用 new google recaptcha。
在之前的recapthca中,我通常使用这个脚本来检查用户是否填写了recaptca challenge。
if (isset($_POST['cmdlogin'])){
$resp = recaptcha_check_answer ($privatekey,$_SERVER['REMOTE_ADDR'],strip_tags($_POST['recaptcha_challenge_field']),strip_tags($_POST['recaptcha_response_field']));
if (!$resp->is_valid) {// Bila captcha not true
echo "<script>alert('Invalid! try again!');</script>";
echo "<meta http-equiv='refresh' content='0; url=login.php'>";
exit();
}
....
然后,我找到了这个教程[http://codeforgeek.com/2014/12/google-recaptcha-tutorial/#comment-22729,但并不令我满意。
此外,当用户重新加载页面或超时时,会出现"previous recaptcha",那么我应该如何处理呢?否则用户将重新加载页面以避免上一个。感谢您的帮助。
已更新:
参考:https://github.com/google/ReCAPTCHA/tree/master/php
我认为这个问题现在已经解决了。我找到了 link,它给了我关于在 php 脚本中使用新的 google recaptcha 的完整教程。
问题:
当用户重新加载页面时,会出现一个旧的 google recaptcha,我们不需要验证旧的,因为当用户输入正确的 recaptcha 时,"RESULT" 将被发送到新的 recaptcha。另一方面,验证的重点不是旧的,而是新的。当未知用户使用其他机器人攻击新机器人时,这样做是为了保护它免受垃圾邮件的侵害。通过出现旧的,攻击可以说失败。
if ($resp != null && $resp->success) {
echo "<script>alert('SUCCESS Verifying Recaptcha!');</script>";
echo "<meta http-equiv='refresh' content='0; url=login.php'>";
exit();
}
html_element
是我的空 div.. 然后你可以将以下内容放在一个函数中并在提交时调用它:
var googleResponse = jQuery('#g-recaptcha-response').val();
if (!googleResponse) {
$('<p style="color:red !important" class="error-captcha"><span class="glyphicon glyphicon-remove " ></span> Please fill up the captcha.</p>" ').insertAfter("#html_element");
return false;
} else {
return true;
}
检查google recaptcha是否被检查可以通过以下javascript条件来完成:
<script>
if(grecaptcha && grecaptcha.getResponse().length > 0)
{
//the recaptcha is checked
// Do what you want here
alert('Well, recaptcha is checked !');
}
else
{
//The recaptcha is not cheched
//You can display an error message here
alert('Oops, you have to check the recaptcha !');
}
</script>
我现在正尝试在我的网页中使用 new google recaptcha。 在之前的recapthca中,我通常使用这个脚本来检查用户是否填写了recaptca challenge。
if (isset($_POST['cmdlogin'])){
$resp = recaptcha_check_answer ($privatekey,$_SERVER['REMOTE_ADDR'],strip_tags($_POST['recaptcha_challenge_field']),strip_tags($_POST['recaptcha_response_field']));
if (!$resp->is_valid) {// Bila captcha not true
echo "<script>alert('Invalid! try again!');</script>";
echo "<meta http-equiv='refresh' content='0; url=login.php'>";
exit();
}
....
然后,我找到了这个教程[http://codeforgeek.com/2014/12/google-recaptcha-tutorial/#comment-22729,但并不令我满意。
此外,当用户重新加载页面或超时时,会出现"previous recaptcha",那么我应该如何处理呢?否则用户将重新加载页面以避免上一个。感谢您的帮助。
已更新: 参考:https://github.com/google/ReCAPTCHA/tree/master/php 我认为这个问题现在已经解决了。我找到了 link,它给了我关于在 php 脚本中使用新的 google recaptcha 的完整教程。
问题: 当用户重新加载页面时,会出现一个旧的 google recaptcha,我们不需要验证旧的,因为当用户输入正确的 recaptcha 时,"RESULT" 将被发送到新的 recaptcha。另一方面,验证的重点不是旧的,而是新的。当未知用户使用其他机器人攻击新机器人时,这样做是为了保护它免受垃圾邮件的侵害。通过出现旧的,攻击可以说失败。
if ($resp != null && $resp->success) {
echo "<script>alert('SUCCESS Verifying Recaptcha!');</script>";
echo "<meta http-equiv='refresh' content='0; url=login.php'>";
exit();
}
html_element
是我的空 div.. 然后你可以将以下内容放在一个函数中并在提交时调用它:
var googleResponse = jQuery('#g-recaptcha-response').val();
if (!googleResponse) {
$('<p style="color:red !important" class="error-captcha"><span class="glyphicon glyphicon-remove " ></span> Please fill up the captcha.</p>" ').insertAfter("#html_element");
return false;
} else {
return true;
}
检查google recaptcha是否被检查可以通过以下javascript条件来完成:
<script>
if(grecaptcha && grecaptcha.getResponse().length > 0)
{
//the recaptcha is checked
// Do what you want here
alert('Well, recaptcha is checked !');
}
else
{
//The recaptcha is not cheched
//You can display an error message here
alert('Oops, you have to check the recaptcha !');
}
</script>