错误:在CakePHP 2.5.1中调用未定义的函数recaptcha_check_answer()(PHP 5.3.28)

时间:2016-05-25 10:27:11

标签: cakephp recaptcha

我正在尝试在我的CakePHP应用程序的登录和注册页面中添加Google的reCAPTCHA。但它显示以下错误:

致命错误 错误:调用未定义的函数recaptcha_check_answer()
文件:C:... \ app \ Controller \ UsersController.php

在UsersController中,我有以下行,在错误消息中显示。

$recaptchaResp = recaptcha_check_answer(Configure::read("Recaptcha.privateKey"),
                            $_SERVER["REMOTE_ADDR"],

                            $this->params['form']["recaptcha_challenge_field"],
                            $this->params['form']["recaptcha_response_field"]);

有人能告诉我这个代码有什么问题吗?它是否缺少像recaptchalib这样的文件?如果是这样,我在哪里可以获得CakePHP 2.5.1的这个库?

1 个答案:

答案 0 :(得分:1)

在cakephp中有一个google reCaptcha插件。您可以从Here

下载

要使用recaptcha插件,必须在/app/Config/bootstrap.php文件中包含以下两行。

Configure::write('Recaptcha.publicKey', 'public-api-key');
Configure::write('Recaptcha.privateKey', 'private-api-key');

将使用recaptcha的控制器需要包含Recaptcha组件。通过包含该组件,帮助程序将自动提供给您的视图。

public $components = array('Recaptcha.Recaptcha');

在视图中,只需调用helpers display()方法来呈现recaptcha输入:

echo $this->Recaptcha->display();

要检查结果,只需在控制器中执行以下操作:

if ($this->request->is('post')) {
    if ($this->Recaptcha->verify()) {
        // verified
    } else {
        // display the error
    }
}