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配合jquery实现增删操作具体实例
Dec 12 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
php+mysql数据库查询实例
Jan 21 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
php中strtotime函数性能分析
Nov 20 PHP
php中上传文件的的解决方案
Sep 25 PHP
实例讲解php实现多线程
Jan 27 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
Laravel5.1 框架路由基础详解
Jan 04 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用xpath解析html的代码实例讲解
2019/02/14 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
Python的一些用法分享
2012/10/07 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python write无法写入文件的解决方法
2019/01/23 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Django 路由层URLconf的实现
2019/12/30 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
python 对xml解析的示例
2021/02/27 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
教师年终个人自我评价
2013/10/04 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
Django 实现jwt认证的示例
2021/04/30 Python
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
Python学习之异常中的finally使用详解
2022/03/16 Python