如何将hCaptcha与CakePHP集成以进行服务器端验证,并使captcha成为强制性的?

oipij1gg  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(190)

我正在尝试按照下面的页面在一系列运行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。
任何帮助都是非常感谢的。

0mkxixxg

0mkxixxg1#

您可以使用这个快速的、直接插入的cakephp2-hcaptcha插件。
1.将echo $this->hCaptcha->challenge()添加到您的$this->Form示例以显示质询
1.在接收请求的控制器中,调用$this->hCaptcha->verify($this->request->data)来验证提交。

相关问题