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 相关文章推荐
main.php
Dec 09 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
php实现给一张图片加上水印效果
Jan 02 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
php mysql数据库操作类
2008/06/04 PHP
PHP网站基础优化方法小结
2008/09/29 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
Python continue语句用法实例
2014/03/11 Python
vscode 远程调试python的方法
2017/12/01 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
学年自我鉴定范文
2013/10/01 职场文书
护理心得体会范文
2016/01/22 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
Python使用永中文档转换服务
2022/05/06 Python