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中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
php生成文件
Jan 15 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
PHP类与对象中的private访问控制的疑问
Nov 01 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
最常用的8款PHP调试工具
Jul 06 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
php采集中国代理服务器网的方法
Jun 16 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 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
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
简单的php购物车代码
2020/06/05 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
wxPython中文教程入门实例
2014/06/09 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Python中反射和描述器总结
2018/09/23 Python
python 调整图片亮度的示例
2020/12/03 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
开放系统互连参考模型
2016/06/29 面试题
春季防火方案
2014/05/10 职场文书
演讲稿的写法
2014/05/19 职场文书
代办委托书怎么写
2014/08/01 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
会议开幕词
2015/01/28 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript