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中用正则表达式清除字符串的空白
Jan 17 PHP
CURL状态码列表(详细)
Jun 27 PHP
php中cookie的使用方法
Mar 29 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
9个比较实用的php代码片段
Mar 15 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
CodeIgniter常用知识点小结
May 26 PHP
Smarty日期时间操作方法示例
Nov 15 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 PHP
如何用RabbitMQ和Swoole实现一个异步任务系统
May 29 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中的cookie
2006/11/26 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
举例讲解Python中的算数运算符的用法
2015/05/13 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
详解Python3 pandas.merge用法
2019/09/05 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
Java编程面试题
2016/04/04 面试题
《挑山工》的教学反思
2014/02/16 职场文书
财务出纳岗位职责
2015/03/31 职场文书
教师节主持词开场白
2015/05/29 职场文书
信息技术研修心得体会
2016/01/08 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
Mysql binlog日志文件过大的解决
2021/10/05 MySQL