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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
PHP 彩色文字实现代码
Jun 29 PHP
整理的9个实用的PHP库简介和下载
Nov 09 PHP
php whois查询API制作方法
Jun 23 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
PHP实现对数字分隔加千分号的方法
Mar 18 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模板类代码
2008/09/07 PHP
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
PHP多进程编程实例
2014/10/15 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
javascript实现前端分页效果
2020/06/24 Javascript
深入解析Python中的集合类型操作符
2015/08/19 Python
python生成器表达式和列表解析
2016/03/10 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
入党转预备思想汇报
2014/01/07 职场文书
市场安全管理制度
2014/01/26 职场文书
五水共治一句话承诺
2014/05/30 职场文书
代理人委托书
2014/09/16 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
公司庆典主持词
2015/07/04 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书