我正在尝试按照下面的页面在一系列运行CakePHP的网站上设置hCaptcha。
https://polyte.de/en/php/2020/05/04/hcaptcha-cakephp.html
我不是一个很好的开发人员,所以我正在与服务器端验证部分的斗争。
我已经设法让hCaptcha元素显示在我想要的页面上,你可以点击它们并完成它们。
例如https://www.yello.in/-然后单击“登录”或“注册”(这由header.ctp控制)。
首先,如何使它成为强制性的?目前您可以完全跳过它,仍然注册或登录。
第二,也是更重要的一点,根据上面的文章,我应该如何或者在哪里添加服务器端验证的代码呢?查看我的站点代码时,我认为它应该在UserController.php文件中。
此文件包含用于注册和登录的函数。
例如,login函数如下所示:
PHP
function login() {
if (!empty($this->rememberUser)) {
$this->redirect('/User/Profile');
}
if ($this->data) {
$this->data = Sanitize::clean($this->data, array('encode' => false, 'underscore' => false));
$objUser = $this->User->find('first', array("conditions" => "(User.c_email='".$this->data['User']['c_email']."' or User.c_username='".$this->data['User']['c_email']."')
AND User.c_password='".$this->data['User']['c_password']."'"));
if ($objUser) {
if ($this->data['User']['c_remember'] != "0") {
$this->Cookie->write('Yello.User', $objUser, false, '1 year');
} else {
$this->Session->write('Yello.User', $objUser);
}
$this->redirect('/');
} else {
$this->Session->setFlash(__d('user','incorrect-password',true),'default',array('class'=>'dvNotifyMsgFail'));
$this->redirect('/User/login');
}
}
我想在登录页面、注册页面和你发布广告的页面(https://www.yello.in/post-ads)上验证hCaptcha验证码。我只是不知道把代码放在哪里。这是由post.ctp控制的。
CakePHP的版本是2.1.2。
任何帮助都是非常感谢的。
1条答案
按热度按时间0mkxixxg1#
您可以使用这个快速的、直接插入的cakephp2-hcaptcha插件。
1.将
echo $this->hCaptcha->challenge()
添加到您的$this->Form
示例以显示质询1.在接收请求的控制器中,调用
$this->hCaptcha->verify($this->request->data)
来验证提交。