我正在使用这个加载Recaptcha:
<script src="//www.google.com/recaptcha/api/challenge?k=key"></script>
并使用AJax和PHP验证响应:
$ch=curl_init('http://www.google.com/recaptcha/api/verify');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'privatekey'=>'key',
'remoteip'=>$_SERVER['REMOTE_ADDR'],
'challenge'=>$_POST['recaptcha_challenge_field'],
'response'=>$_POST['recaptcha_response_field']
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response=@curl_exec($ch);
if(substr($response,0,4)!='true')
die('The verification code is incorrect.');
出于某种原因,如果我输错Captcha,然后正确地重新输入,验证总是返回“false”。如果第一次输入错误,我如何允许用户重新提交Recaptcha响应(无需重新加载图像)?
答案 0 :(得分:1)
你做不到。用户不能再次尝试reCaptcha挑战 - 如果他们遇到错误,他们将需要在下次尝试不同的尝试。对于Web表单,如果reCaptcha挑战失败,通常应通过重新显示带有错误消息的表单来实现,而不是强制用户使用“后退”按钮。