Recaptcha第二次总是失败

时间:2014-02-13 23:50:27

标签: javascript php captcha recaptcha

我正在使用这个加载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响应(无需重新加载图像)?

1 个答案:

答案 0 :(得分:1)

你做不到。用户不能再次尝试reCaptcha挑战 - 如果他们遇到错误,他们将需要在下次尝试不同的尝试。对于Web表单,如果reCaptcha挑战失败,通常应通过重新显示带有错误消息的表单来实现,而不是强制用户使用“后退”按钮。