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 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
php转换颜色为其反色的方法
Apr 27 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
php实现网站顶踩功能的完整前端代码
Jul 19 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
PHP设置images目录不充许http访问的方法
Nov 01 PHP
PHP使用curl函数发送Post请求的注意事项
Nov 26 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
使用vs code编辑调试php配置的方法
Jan 29 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实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
Javascript与flash交互通信基础教程
2008/08/07 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
js的三种继承方式详解
2017/01/21 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python定时执行之Timer用法示例
2015/05/27 Python
vue常用指令代码实例总结
2020/03/16 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
购买原创艺术品:Zatista
2019/11/09 全球购物
建筑施工实习自我鉴定
2013/09/19 职场文书
企业内控岗位的职责
2014/02/07 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
学校四群教育实施方案
2014/06/12 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
机关作风建设工作总结
2014/10/23 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
新党员入党决心书
2015/09/22 职场文书
2016国培学习心得体会
2016/01/08 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python