ThinkPHP5&5.1验证码(vendor扩展包方式)的使用及点击刷新(二)

验证码现在是用户登录、支付等很多环节的必备元素,ThinkPHP5&5.1给我们提供了验证码的生成方式,也是非常的简单,在这里写一个完整的验证码验证的使用方法,供大家参考。

前台用户在登录时候需要验证码验证才能登录。首先使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha


在需要显示验证码的地方:

<tr>
  <th>请输入验证码:</th>
  <td>
    <input type="text" name="captcha" class="inp01"/>
    <img src="{:url('index/login/verify')}" alt="验证码加载中" id="captcha"/>
  </td>
</tr>


其中verify是生成验证码的方法:

public function verify()
{
    $config =    [
        // 验证码字体大小
        'fontSize'    =>    15,
        // 验证码位数
        'length'      =>    3,
        // 关闭验证码杂点
        'useNoise'    =>    false,
    ];
    $captcha = new \think\captcha\Captcha($config);
    return $captcha->entry();
}


其中$config是验证码的配置项,具体有哪些配置内容可以参考手册。

使用Ajax或者jquery-validate进行验证码的验证,也可以提交以后进行验证:

public function checkcapcha()
{
    $captcha = new \think\captcha\Captcha();
    if( !$captcha->check(input('post.captcha')))
    {
     	return false;
    }else{
        return true;
    }
}


为了实现点击验证码刷新的功能,还要写js代码:

$("#captcha").click(function(event) {
   this.src = "{:url('index/login/verify')}?"+Math.random();
});


这样就实现了验证码的验证功能,是不是非常简单?
--------------------- 
作者:pan_yuyuan 
来源:CSDN 
原文:https://blog.csdn.net/pan_yuyuan/article/details/81947804 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

方法二:

一、安装composer

https://blog.csdn.net/john_rush/article/details/79833697

二、通过composer安装think-captcha 扩展包

打开命令窗口,进入vendor/topthink输入指令即可,也可以安装shift键再右击鼠标打开命令窗口可以直接进入当前文件夹位置

composer require topthink/think-captcha

三、在控制器里写验证码的方法,要在命名空间引入use think\captcha\Captcha;然后在网址中输入该方法的路由地址就可以出来验证码

//验证码

//验证码
    public function verify()
    {
        $captcha = new Captcha();
        return $captcha->entry();
    }


四、验证码在模板中输出

在视图中加入以下代码:

<img src="{:url('user/verify')}" alt="captcha" />


src里填写verify方法的路由地址

五、验证输入的验证码是否正确

1、可以用 Captcha 类的 check 方法检测验证码的输入是否正确

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串
$captcha = new Captcha();
if( !$captcha->check($value))
{
// 验证失败
}

2、或者直接调用封装的一个验证码检测的函数 captcha_check

/ 检测输入的验证码是否正确,$value为用户输入的验证码字符串

/ 检测输入的验证码是否正确,$value为用户输入的验证码字符串
if( !captcha_check($value ))
{
// 验证失败
}


六、自定义验证码的参数

//验证码

//验证码
    public function verify()
    {
        $config = [
             // 验证码字体大小
            'fontSize' => 30,
            // 验证码位数
            'length' => 4,
            // 关闭验证码杂点
            'useNoise' => true,
            // 验证码图片高度
            'imageH'   => 60,
            // 验证码图片宽度
            'imageW'   => 200,
            // 验证码过期时间(s)
            'expire'   => 1800,
        ];
        $captcha = new Captcha($config);
        return $captcha->entry();
    }


在vendor\topthink\think-captcha\src目录下的Captcha.php中也可以配置

七、以下是我测试登录的代码部分截图

控制器里的verify()方法 
 
控制器里的验证登录的loginCheck()方法 

视图层里的验证码显示

--------------------- 
作者:John_rush 
来源:CSDN 
原文:https://blog.csdn.net/John_rush/article/details/80169702 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值