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 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
织梦模板标记简介
Mar 11 PHP
php一些公用函数的集合
Mar 27 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
php判断linux下程序问题实例
Jul 09 PHP
php正则表达式获取内容所有链接
Jul 24 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 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
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python持久性管理pickle模块详细介绍
2015/02/18 Python
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
怎样写演讲稿
2014/01/04 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
代办委托书怎样写
2014/04/08 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle
python神经网络ResNet50模型
2022/05/06 Python