jzaaa/cake-captcha

CakeCaptcha plugin for CakePHP

Installs: 56

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:cakephp-plugin

v2.0.3 2023-11-24 09:13 UTC

This package is auto-updated.

Last update: 2024-03-24 09:57:38 UTC


README

CakePHP 验证码插件,支持PHP8.1

CakePHP3 请使用 v1版本

Requires

安装

composer require jzaaa/cake-captcha

开启CakePHP插件

bin/cake plugin load JZaaa/CakeCaptcha

// src/Application.php
public function bootstrap()
{
    parent::bootstrap();
    $this->addPlugin('JZaaa/CakeCaptcha', ['routes' => true, 'bootstrap' => true]);
}

配置

创建config/captcha.php文件配置插件:

<?php
return [
    'captcha' => [
        'route' => '/jzaaa/cake-captcha/', // 默认访问路由
        'config' => [
            'width' => 150, // 验证码图像宽
            'height' => 40, // 验证码图像高
            'sensitive' => false, // 是否对大小写敏感
            'sessionKey' => 'captcha', // 存储session key
            'length' => 4, // 验证码长度
            'charset' => '2346789abcdefghjmnpqrtuxyzABCDEFGHJMNPQRTUXYZ', // 验证码字符集
            'applyPostEffects' => true, // 是否应用后期效果
        ]
    ]
];

或者在config/app.php中添加配置项

使用

in *.php 视图文件:

<?php $captcha = $this->Url->build('/jzaaa/cake-captcha')?>

<img src="<?php echo $captcha?>" onclick="this.src='<?php echo $captcha . '?'?>' + Math.random()" style="cursor: pointer;">

in Controller 控制器文件:

use JZaaa\CakeCaptcha\Captcha;

// 检测验证码是否合法
public function check()
{
    if ($this->request->is('post')) {
        $userCode = $this->request->getData('userCode');

        if (!empty($userCode)) {
            $captcha = new Captcha([
                'session' => $this->request->getSession()
            ]);
            if ($captcha->check($userCode)) {
                // valid
            }
        } else {
                // invalid
        }

    }
}