ThinkPHP6.0验证码

问题描述: 缺少验证码请添加图片描述

解决:
1、首先使用 Composer 安装 think-captcha 扩展包:

composer require topthink/think-captcha

请添加图片描述
(注:验证码库需要开启Session才能生效。)

2、配置: 在config下的captcha中。

<?php
// +----------------------------------------------------------------------
// | Captcha配置文件
// +----------------------------------------------------------------------

return [
    //验证码位数
    'length'   => 5,
    // 验证码字符集合
    'codeSet'  => '23456789abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
    // 验证码过期时间
    'expire'   => 1800,
    // 是否使用中文验证码
    'useZh'    => false,
    // 是否使用算术验证码
    'math'     => false,
    // 是否使用背景图
    'useImgBg' => false,
    //验证码字符大小
    'fontSize' => 25,
    // 是否使用混淆曲线
    'useCurve' => true,
    //是否添加杂点
    'useNoise' => true,
    // 验证码字体 不设置则随机
    'fontttf'  => '',
    //背景颜色
    'bg'       => [243, 251, 254],
    // 验证码图片高度
    'imageH'   => 0,
    // 验证码图片宽度
    'imageW'   => 0,

    // 添加额外的验证码设置
    // verify => [
    //     'length'=>4,
    //    ...
    //],
];

请添加图片描述
3、(middleware.php)启动session,因为验证码信息是以缓存形式存储在session中的
请添加图片描述

4、(前)模板中的两种表示

<div>{:captcha_img()}</div>
<div><img src="{:captcha_src()}" alt="captcha" /></div>

上面两种的最终效果是一样的,根据需要调用即可。

5、(后)Login控制器

<?php
namespace app\dongadmin\controller;
use think\facade\Db;
use app\BaseController;
class Login extends  BaseController
{
    //后台登录的逻辑
	public function index()
    {
        //已登录直接跳转
        $account = session('adminAccount');
        if($account && $account['id']) {
            return redirect(url('index/index'));
        }
        if(request()->isPost()) {
            $data = input('post.');
            //halt($data);
            // 通过用户名 获取 用户相关信息
            $adminData = Db::name('admin')->where('username',$data['username'])->find();//一维数组
            if(!$adminData || $adminData['status'] !=1 ) {
                //dump(111111);die;
                return alert('用户不存在,或者此用户未被审核通过','/dongadmin/login',5,3);
            }
            if(!captcha_check($data['verifycode'])) {
                //dump(222222);die;
                // 校验失败
                return alert('验证码不正确','/dongadmin/login',5,3);
            }
            if($adminData['password'] !=password_salt($data['password'])) {
                //dump(333333);die;
                return alert('密码不正确','/dongadmin/login',5,3);
            }
            //dump(444444);die;
            session('adminAccount', $adminData);
            return alert('登录成功!','/dongadmin/index/index',6,3);
        }else {
            return view();
        }
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郁慕斯-ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值