我正在尝试在我的CakePHP应用程序的登录和注册页面中添加Google的reCAPTCHA。但它显示以下错误:
致命错误
错误:调用未定义的函数recaptcha_check_answer()
文件:C:... \ app \ Controller \ UsersController.php
$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的这个库?
答案 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
}
}