项目作者: JZaaa

项目描述 :
CakePHP3 Captcha Plugin
高级语言: PHP
项目地址: git://github.com/JZaaa/CakeCaptcha.git
创建时间: 2019-02-20T05:23:45Z
项目社区:https://github.com/JZaaa/CakeCaptcha

开源协议:MIT License

下载


CakeCaptcha

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

CakePHP3 请使用 v1版本

Requires

安装

  1. composer require jzaaa/cake-captcha

开启CakePHP插件

  1. bin/cake plugin load JZaaa/CakeCaptcha

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

配置

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

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

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

使用

in *.php 视图文件:

  1. <?php $captcha = $this->Url->build('/jzaaa/cake-captcha')?>
  2. <img src="<?php echo $captcha?>" onclick="this.src='<?php echo $captcha . '?'?>' + Math.random()" style="cursor: pointer;">

in Controller 控制器文件:

  1. use JZaaa\CakeCaptcha\Captcha;
  2. // 检测验证码是否合法
  3. public function check()
  4. {
  5. if ($this->request->is('post')) {
  6. $userCode = $this->request->getData('userCode');
  7. if (!empty($userCode)) {
  8. $captcha = new Captcha([
  9. 'session' => $this->request->getSession()
  10. ]);
  11. if ($captcha->check($userCode)) {
  12. // valid
  13. }
  14. } else {
  15. // invalid
  16. }
  17. }
  18. }