Error: Call to undefined function recaptcha_check_answer() in CakePHP 2.5.1 (PHP 5.3.28)

Error: Call to undefined function recaptcha_check_answer() in CakePHP 2.5.1 (PHP 5.3.28)

我正在尝试在我的 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 的这个库?

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');

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

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

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

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