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 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
15种PHP Encoder的比较
Apr 17 PHP
PHP实现多图片上传类实例
Jul 26 PHP
php实现网站顶踩功能的完整前端代码
Jul 19 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
初识PHP中的Swoole
Apr 05 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
PHP快速推送微信模板消息
Apr 14 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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.ini中文版(2)
2006/10/09 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
详解package.json版本号规则
2019/08/01 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
Python数据处理numpy.median的实例讲解
2018/04/02 Python
Python实现注册、登录小程序功能
2018/09/21 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python中删除某个元素的方法解析
2019/11/05 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
大韩航空官方网站:Korean Air
2017/10/25 全球购物
综合内勤岗位职责
2014/04/14 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
颐和园的导游词
2015/01/30 职场文书
法院个人总结
2015/03/03 职场文书
实习单位推荐信
2015/03/27 职场文书
培训感想范文
2015/08/07 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android