如何验证reCAPTCHA

时间:2013-07-30 23:45:11

标签: php javascript recaptcha

我想为reCAPTCHA编写一个JavaScript和php验证在我的php中我有以下功能,但我不能正常工作。它没有,如果我输入了错误的reCAPTCHA代码,则返回错误消息:

function invalid($inputname,$error_message)
{
    $this->js.='if (!invalid(formname.'.$inputname.',"'.$error_message.'")) return false;';
    if ( isset($_POST[$inputname]) && strlen($_POST[$inputname]) - strlen(str_replace(' ','',$_POST[$inputname])) > $limit && $_POST[$inputname] != "")
    {
        $this -> error_message .= $error_message.'<br>';
    }
}

我不想只是回显我希望在表单顶部回显消息的消息,就像我使用其他验证一样:

有人能告诉我如何在php和javascript中正确地完成它吗?

由于

2 个答案:

答案 0 :(得分:2)

请阅读the reCAPTCHA documentation。它清楚地概述了正确使用recaptcha_check_answer()函数(reCAPTCHA PHP库的一部分)来验证解决方案。

答案 1 :(得分:-3)

这个

strlen($_POST[$inputname]) - strlen(str_replace(' ','',$_POST[$inputname])) > $limit

将是假的,假设$ limit类似于6.应该只是

strlen(str_replace(' ','',$_POST[$inputname])) > $limit

让我们说验证码是“香蕉”。 strlen("bananas") - strlen("bananas") == 0

已添加 JavaScript在任何时候都不会返回false,因此如果验证码正确,它将返回undefined,这可能会影响其他地方的代码(特别是你正在使用===)。