PHP中奇怪的reCaptcha错误

时间:2011-12-22 11:30:59

标签: php forms recaptcha

我在网站上实施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->错误不包含任何内容,这使得它几乎无法调试。

有没有人遇到过这个?我在网上找不到任何东西。

1 个答案:

答案 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;
}