Yii2下点击验证码的切换实例代码


Posted in PHP onMarch 14, 2017

最近需要用到验证码,搜索了很多关于Yii2验证码的切换的介绍,下面我来记录一下,有需要了解Yii2下验证码的切换的朋友可参考。希望此文章对各位有所帮助。

模型代码如下:

<?php
namespace app\admin\models;
use yii;
use yii\base\model;
use yii\captcha\Captcha;
class LoginForm extends Model{
  public $verifyCode;
  public $password;
  public $username;
  public function rules(){
    return [
      ['verifyCode','captcha','captchaAction'=>'/admin/login/captcha','message'=>'{attribute}'],
      [['password','username'],'required'],
    ];

  }
}

控制器代码如下:

<?php
namespace app\admin\controllers;
use Yii;
use yii\web\Controller;
use app\admin\models\LoginForm;
use yii\filters\AccessControl;
use yii\filters\VerbFilter;
use yii\captcha\CaptchaAction;
class LoginController extends Controller{

 public function actions(){
   return [
     'captcha'=>'yii\captcha\CaptchaAction',
     'maxLength'=>4,
     'minLength'=>3,
     'width'=>10,
     'height'=>10
   ];
  }

  public function actionIndex(){
    $log = new LoginForm();
    
     return $this->renderPartial("index",['model'=>$log]);
  }
  //授权规则
}

视图代码如下:

<?php
use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;
use yii\widgets\ActiveFiel;
use yii\widgets\ActiveForm;
use yii\captcha\Captcha;
use app\components\HelloWidget;
//url 创建
use yii\helpers\Url;
AppAsset::register($this);
?>
<?php $this->beginPage()?>
<!DOCTYPE html>
<html>
<head>
  <title>博客后台管理系统</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <?=Html::cssFile('@web/css/bootstrap.min.css')?>
  <?=Html::cssFile('@web/css/style.css')?>
  <?=Html::jsFile("@web/js/jquery-1.11.3.min.js");?>
  <?=Html::jsFile("@web/js/bootstrap.min.js");?>
<?php ?>

</head>
  <?php $this->beginBody()?>
<body>
<div class="login-box">
  <div class="login">
    <div class="login-icon">

    </div>
    <h4 class="login-title">博客后台管理系统</h4>
    <?php $form=ActiveForm::begin(['method'=>'post','action'=> \Yii::$app->urlManager->createUrl('/admin/login/index')])?>
      <div class="login-input-box mb10">
       <input type="text" class="form-control" name="username" placeholder="用户名">
      </div>
      <div class="login-input-box mb10">

        <input class="form-control" type="password" name="password" placeholder="密码">
      </div>
      <div class="login-input-box mb30">
        <input class="form-control" type="text" name="code" placeholder="验证码">

        <span class="login-code">
          <img id="code_img" src="<?= Url::toRoute('/admin/login/captcha')?>" title="点击刷新验证码" onClick="get_code(this);">
        </span>
      </div>
      <input class="inputbtn bg-success btn-block" type="submit" value="登 录">
    <?php ActiveForm::end();?>
  </div>
</div>
<script type="text/javascript">
  //刷新验证码
  function get_code(obj)
  {

    if(!obj)
    {
      obj = document.getElementById('code_img');
    }
    obj.src = obj.src + "&t="+Date.parse(new Date());
  }
</script>
</body>
  <?php $this->beginBody()?>
</html>

<?php $this->endPage()?>

这里整个代码差不多了但是要设置一样更重要的 app/vendor/yiisoft/yii2/captcha/的文件下的CaptchaAction.php这文件中修改getVerifyCode($regenerate = false) 的方法$regenerate参数为true (getVerifyCode($regenerate = true))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP新手上路(九)
Oct 09 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
浅析php数据类型转换
Jan 09 PHP
使用php清除bom示例
Mar 03 PHP
php调用c接口无错版介绍
Mar 11 PHP
php下Memcached入门实例解析
Jan 05 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 PHP
php分页查询的简单实现代码
Mar 14 #PHP
php实现购物车产品删除功能(2)
Jul 23 #PHP
php实现产品加入购物车功能(1)
Jul 23 #PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 #PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 #PHP
PHP输出多个元素的排列或组合的方法
Mar 14 #PHP
Linux下快速搭建php开发环境
Mar 13 #PHP
You might like
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
python进程和线程用法知识点总结
2019/05/28 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
python 实现目录复制的三种小结
2019/12/04 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
2014信息公开实施方案
2014/02/22 职场文书
护理专业求职信
2014/06/15 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python