因此,我可以使用以下代码成功地获得验证码进行验证。
</p>
<?php
if(isset($_POST['g-recaptcha-response'])){
echo verify($_POST['g-recaptcha-response']);
}
function verify($response) {
$ip = $_SERVER['blank']; //server Ip
$key="secretkey"; // Secret key
//Build up the url
$url = 'https://www.google.com/recaptcha/api/siteverify';
$full_url = $url.'?secret='.$key.'&response='.$response.'&remoteip='.$ip;
//Get the response back decode the json
$data = json_decode(file_get_contents($full_url));
//Return true or false, based on users input
if(isset($data->success) && $data->success == true) {
return True;
}
return False;
}
?>
<p style="text-align: justify;">
<script type="text/javascript">
function verify(){
var serializedValues = jQuery("#infoForm").serialize();
jQuery.ajax({ type: 'POST',url:"verify.php",data: serializedValues,success:function(result){
if(result){
$('#show').html('Your Form Successfully Submitted');
$('.formwrap').hide(result);
return true;
}
}});
$('#show').html('Please Enter Valid Captcha');
return false;
}
var onloadCallback = function() {
grecaptcha.render('captcha_ele', {
'sitekey' : 'Enter Your Site Key Here', // Site key
});
};
</script>
然而,当我点击提交,无论验证码说什么,表单仍然会提交。我的电子邮件表单过程如下...
一个二个一个一个
3条答案
按热度按时间dsekswqp1#
我使用这个方法,在表单提交中加入一个js函数来验证re-captcha:
然后一些js停止表单提交,如果用户没有勾选复选框:
您可以将提醒替换为吐司或在页面上执行某些元素时。
高温加热
lkaoscv72#
在单独的js文件中(至少:没有对函数的内联调用),你必须检查验证码是否可以验证。
您不必检查测试passive是否为true,因为您已经阻止了使用此方法发送表单。
u3r8eeie3#
这是一个更简单的模型