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 strlen mb_strlen计算中英文混排字符串长度
Jul 10 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
10 个经典PHP函数
Oct 17 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 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
几个学习PHP的网址
2006/11/25 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
python获取多线程及子线程的返回值
2017/11/15 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
django+echart数据动态显示的例子
2019/08/12 Python
Django中提示消息messages的设置方式
2019/11/15 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
Linux Interview Questions For software testers
2012/06/02 面试题
助人为乐表扬信范文
2014/01/14 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
小组口号大全
2014/06/09 职场文书
工作所在部门证明
2014/09/21 职场文书
2014年平安夜寄语
2014/12/08 职场文书
2014年财政局工作总结
2014/12/09 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
诉讼和解协议书
2016/03/23 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
python实现过滤敏感词
2021/05/08 Python
试了下Golang实现try catch的方法
2021/07/01 Golang