我在网站上实施reCaptcha时遇到了问题。
我遵循了这里的教程:http://code.google.com/apis/recaptcha/docs/php.html并实现了一个带有错误消息的基本reCaptcha。
以下是我在提交表单的文件中使用的一些自定义代码:
if (!$resp->isValid) {
$_SESSION['badLoginCount'] += 1;
$_SESSION['incorrect-captcha'] = true;
$_SESSION['incorrect-captcha-error'] = $resp->error;
header ('Location: ../../signin.php');
exit;
}
如果用户键入了错误的reCaptcha,页面将重定向,并且会按预期显示错误。但是,当用户输入正确的reCaptcha时,isValid仍会计算为FALSE并运行此分支,但$ resp->错误不包含任何内容,这使得它几乎无法调试。
有没有人遇到过这个?我在网上找不到任何东西。
答案 0 :(得分:0)
快速而苛刻的解决方法是检查$resp->error
是否为空。
if (!empty($resp->error)) {
$_SESSION['badLoginCount'] += 1;
$_SESSION['incorrect-captcha'] = true;
$_SESSION['incorrect-captcha-error'] = $resp->error;
header ('Location: ../../signin.php');
exit;
}