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面向对象全攻略 (九)访问类型
Sep 30 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
php常用数学函数汇总
Nov 21 PHP
php中Ctype函数用法详解
Dec 09 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
php微信支付之公众号支付功能
May 30 PHP
PHP自动载入类文件函数__autoload的使用方法
Mar 25 PHP
Laravel-admin之修改操作日志的方法
Sep 30 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
python中readline判断文件读取结束的方法
2014/11/08 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
基于python实现把图片转换成素描
2019/11/13 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
中小学生学籍证明
2014/10/25 职场文书
初中政治教师教学反思
2016/02/23 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
Pygame Rect区域位置的使用(图文)
2021/11/17 Python