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学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
PHP中使用Memache作为进程锁的操作类分享
Mar 30 PHP
PHP获取文件行数的方法
Jun 10 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 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
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
Python提取特定时间段内数据的方法实例
2019/04/01 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
简单了解Django ContentType内置组件
2019/07/23 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
客运企业隐患排查工作方案
2014/06/06 职场文书
委托书如何写
2014/08/30 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
团队拓展训练感想
2015/08/07 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
《打电话》教学反思
2016/02/22 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS