Yii2.0自定义验证码

第一步,控制器:

在任意controller里面重写方法

第二步,表单模型:

这里只给出验证码相关的部分。

验证规则里面验证码的验证器是captcha

第三步,视图:

用ActiveForm生成对应字段。

captchaAction参数指定第一步是在写在哪里的,默认是site里面。

验证码,生成和验证的整个流程就完成了。

以上是生成验证码的流程,因为验证码数字是在代码中写死的,如果我们需要数字的话,那该怎么办呢?

很好办,我们可以自己写个类来继承CaptchaAction,重写generateVerifyCode方法,例子:

namespace yii\captcha;class   Newcaptcha extends CaptchaAction{    protected function generateVerifyCode()    {        if ($this->minLength > $this->maxLength) {            $this->maxLength = $this->minLength;        }        if ($this->minLength < 3) {            $this->minLength = 3;        }        if ($this->maxLength > 20) {            $this->maxLength = 20;        }        $length = mt_rand($this->minLength, $this->maxLength);

$letters = ‘1234567890123456789012‘;        $vowels = ‘aeiou‘;        $code = ‘‘;        for ($i = 0; $i < $length; ++$i) {            if ($i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9) {                $code .= $vowels[mt_rand(0, 4)];            } else {                $code .= $letters[mt_rand(0, 20)];            }        }        return $code;    }}生成类文件成功。然后再更改控制器的配置
‘captcha‘ => [    ‘class‘ => ‘yii\captcha\Newcaptcha‘,    ‘maxLength‘ => 5,    ‘minLength‘ =>5],

好了,更改完成,让我们来看下效果吧!


 
				
时间: 2024-10-16 21:53:28

Yii2.0自定义验证码的相关文章

Yii2.0 自定义日志类

Yii2.0的日志功能虽然说已经很强大,但有时候,我们需要在程序运行的关键地方加入日志.这样使用Yii2.0系统提供日志功能,就有一些不太习惯.(ps:也许是我的Yii2.0使用的不熟悉) 这里我在extensions下建了一个utils目录并建了一个名为FileLog的php文件继承yii\log\FileTarget类.不多了,直接上代码,大家一看就明白了. <?php namespace app\extensions\utils; use Yii; use yii\helpers\File

yii2.0表单自带验证码

Yii2.0的自带的验证依赖于GD2或者ImageMagick扩展. 使用步骤如下: 第一步,控制器: 在任意controller里面重写方法 代码折叠,点击查看 <?php namespace frontend\controllers; use Yii; use app\models\login; use app\models\search\UserSearch; use yii\web\Controller; use yii\web\NotFoundHttpException; use yi

Yii2.0模型层数据验证和thinkPHP3.2框架模型层数据验证对比

Yii2.0模型层数据验证 一般说来,程序猿永远不应该信任从最终用户直接接收到的数据,并且使用它们之前应始终先验证其可靠性.要给model填充其所需的用户输入数据,你可以调用 yii\base\Model::validate() 方法验证它们.该方法会返回一个布尔值,指明是否通过验证.若没有通过,你能通过 yii\base\Model::errors 属性获取相应的报错信息.比如 $model = new \app\models\ContactForm; // 用用户输入来填充模型的特性 $mo

Yii 2.0 使用验证码

Yii2.0 提供了验证码组件.调用起来比较方便.以登录页面添加验证码为例. 1. 模型中添加字段和验证规则. common\models\LoginForm 添加如下代码 public $captcha; //rules() 方法内添加 ['captcha', 'required'], ['captcha', 'captcha'], 2. 控制器中添加captcha的action backend\controllers\SiteController public function action

Yii2.0中文开发向导——控制器(Controller)

本节包含以下方面的内容 基本概念 路由 默认路由 动作的参数 在动作中定义参数 从请求(request)中获取参数 独立动作 动作过滤器(Action Filters) 捕获所有的请求 自定义响应类 控制器(Control)是应用程序中最关键的部分之一,它决定了如何处理传递进来的请求(Request),以及生成相应的响应(Response).大部分的控制器都会处理一个Http的请求,然后返回Html或者Json或者Xml格式的数据作为响应.1.基本概念控制器文件一般在应用程序的controlle

Yii2.0中文开发向导——控制器(Control)

本节包含以下方面的内容 基本概念 路由 默认路由 动作的参数 在动作中定义参数 从请求(request)中获取参数 独立动作 动作过滤器(Action Filters) 捕获所有的请求 自定义响应类 控制器(Control)是应用程序中最关键的部分之一,它决定了如何处理传递进来的请求(Request),以及生成相应的响应(Response).大部分的控制器都会处理一个Http的请求,然后返回Html或者Json或者Xml格式的数据作为响应.1.基本概念控制器文件一般在应用程序的controlle

Yii2.0 Cookies机制和使用方法

在实际的项目开发过程中,用到了Yii2.0 Cookies机制!但是遇到一个十分奇葩的问题,同一个YII框架,backend下Cookies能够正常存储于客户端,但是frontend始终不行.文章的最后将会解答这个疑问. 一.Yii2.0 Cookies的验证机制 Yii2.0的Cookies不同于常规的PHP的Cookie设置,YII2.0Cookies使用Cookie类自定义名称.值.过期时间:然后将设置好的cookie配置项装载到CookieCollection中.然后服务器端处理完客户端

Yii框架2.0的 验证码

最近看了一个Yii的教程视频,是按1.1的版本讲的,我想用Yii2.0的框架也参考他的学习开发下,结果发现好多不一样的,现在就说说验证码的事 首先加入一个actions 做验证码图片的显示,实际事调用了 CaptchaActive 类 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'height' => 25, 'width' => 80, 'm

nginx1.9.4 +php 5.5.29+yii2.0配置手册

nginx1.9.4 +php 5.5.29+yii2.0配置手册 目录 一.????php5.5.29安装配置????2 二.????nginx1.9.4安装配置????2 三.????yii2.0安装配置????2 1.????基础版安装????2 2.????高级版安装????8 四.????问题????8 五.????参考资料????8 六.????附注????8 ? ? ? php5.5.29安装配置 php下载地址:http://php.net/downloads.php 下载php