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函数utf8转gb2312编码
Dec 21 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
PHP制作用户注册系统
Oct 23 PHP
PHP MSSQL 分页实例
Apr 13 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
Sep 22 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php中spl_autoload详解
2014/10/17 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
对于Python的框架中一些会话程序的管理
2015/04/20 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
python安装scipy的方法步骤
2019/06/26 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
北京SQL新华信咨询
2016/09/30 面试题
Shell编程面试题
2012/05/30 面试题
资深地理教师自我评价
2013/09/21 职场文书
后勤工作职责
2013/12/22 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
病媒生物防治方案
2014/05/13 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
委托书范本
2014/09/13 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
Java完整实现记事本代码
2022/06/16 Java/Android