1.Model中Code.php

<?php
/**
* Created by PhpStorm.
* User: moka同学
* Date: 2016/07/25
* Time: 10:48
*/
namespace app\models; use yii\base\Model; class Code extends Model{
public $verifyCode; public function rules()
{
return [
['verifyCode','captcha','captchaAction'=>'code/captcha','message'=>'验证码错误!']
];
}
}
?>

2.控制器中CodeController.php

<?php
/**
* Created by PhpStorm.
* User: moka同学
* Date: 2016/07/25
* Time: 10:46
*/
namespace app\controllers; use app\models\Code;
use yii\web\Controller; class CodeController extends Controller{
public function actions()
{
return [
//验证码
'captcha'=>[
//验证码类
'class'=>'yii\captcha\CaptchaAction',
'maxLength'=>6, //生成验证码的长度最大为4
'minLength'=>4, //生成最小个数4
'width' =>80, //宽度
'height'=>40
]
];
} public function actionIndex(){
$code = new Code();
if(\Yii::$app->request->isPost){
//验证码验证
if($code->validate()){
echo "验证通过";
}else{
var_dump($code->getErrors());
}
} return $this->render('index',['model'=>$code]); }
}
?>

3.视图index.php

<?php
use \yii\helpers\Html;
use \yii\captcha\Captcha;
echo $this->render('@app/views/public/testNav');
?>
<?=Html::beginForm("",'post',['class'=>'forms'])?>
<?=Captcha::widget([
'model'=>$model, //Model
'attribute'=>'verifyCode',//字段
'captchaAction'=>'code/captcha',//验证码的action 与 Model 是对应的,code/captcha
'template'=>'{input}{image}', //模版,可以自定义
'options'=>[
//input 的Html属性配置
'class'=>'input verifycode',
'id'=>'verifyCode'
],
'imageOptions'=>[
//image的Html属性
'class'=>'imagecode',
'alt'=>'点击图片刷新'
]
]);?>
<?=Html::submitButton("提交",['class'=>'submit'])?>
<?=Html::endForm();?>

[moka同学笔记]Yii2.0验证码的更多相关文章

  1. [moka同学笔记]yii2.0查询数据库

      一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all()   二. [id=1]  选 ...

  2. [moka同学笔记]Yii2.0 modal的使用

    第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...

  3. [moka同学笔记]yii2.0缓存

    1.控制器中CacheDemoController.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/06/29 ...

  4. [moka同学笔记]yii2.0数据库操作以及分页

    1.model中models/article.php 1 <?php 2 3 namespace app\models; 4 5 use Yii; 6 7 /** 8 * This is the ...

  5. [moka同学笔记]yii2.0表单的使用

    1.创建model   /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...

  6. [moka同学笔记]yii2.0小物件的简单使用(第二种方法)

    1.在widgets/TestWidget.php中 <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * T ...

  7. [moka同学笔记]yii2.0小物件的简单使用(第一种方法)

    这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...

  8. [moka同学笔记]Yii2.0显示页匿名函数设置$value

    匿名函数设置$value <?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ // ['cl ...

  9. [moka同学笔记]Yii2.0给一张表中增加一个属性

    1.model中建立关联 public function getUser(){ return$this->hasOne(User::className(),['id'=>'uid']) ; ...

随机推荐

  1. [原]quick集成spine动画

    更新说明: 新增了骨骼绑定node用法 参考:http://blog.csdn.net/n5/article/details/21795265 在SkeletonRenderer.h 和cpp里面新加 ...

  2. 解决tomcat启动Socket监听端口死循环被hold问题

    原文链接:http://blog.csdn.net/dead_cicle/article/details/7073433 1.SOCKET监听置于servlet的init方法中,在web.xml里加入 ...

  3. c++ 职责链模式(Chain of Responsibility)

    职 责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处 理它为止.其思想很简单,考虑员工要求加薪.公司的管 ...

  4. sublime返回上一编辑位置

    用了sublime好长时间了,最近发现一个python插件可以在编辑的时候返回上一编辑位置,这个功能在eclipse很常用,现在终于能在sublime上使用了.好爽. 贴个地址:https://for ...

  5. 一个自动备份mysql数据库的bat文件内容

    自动备份mysql数据库,并已当前的日期时间为目录 copy过去, xcopy将近15年没有用dos命令,还是这么亲切 另 本方法是备份数据库文件,不是dump导出,然后再计划任务中使用,我用的是wa ...

  6. 30分钟入门Java8之方法引用

    30分钟入门Java8之方法引用 前言 之前两篇文章分别介绍了Java8的lambda表达式和默认方法和静态接口方法.今天我们继续学习Java8的新语言特性--方法引用(Method Referenc ...

  7. 基于Java的数据采集(终结篇)

    关于写过关于JAVA采集入库的三篇文章: 基于Java数据采集入库(一):http://www.cnblogs.com/lichenwei/p/3904715.html 基于Java数据采集入库(二) ...

  8. Discuz & UCenter 修改手记 - 2014.12.19

    最近在整JAVA和UCENTER的东西,受限于项目架构需要,无法完全以UCENTER为中心,所以在对接过程中遇到了许多不愉快的事情.经历多番研究,终于解决了其中了两个大问题,现记录下来,以备日后查看. ...

  9. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

  10. STL中的算法小结

    ()要运用STL的算法,首先必须包含头文件<algorithm>,某些STL算法用于数值处理,因此被定义于头文件<numeric> ()所有STL算法都被设计用来处理一个或多个 ...