ThinkPHP_登录验证码的使用

ThinkPHP文档参考地址:https://www.shouce.ren/api/view/a/12706

首先使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha

ThinkPHP 完整版的 就不需要下载了

验证码配置

 'captcha'  => [
        // 验证码字符集合
        'codeSet'  => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
        // 验证码字体大小(px)
        'fontSize' => 16,
        // 是否画混淆曲线
        'useCurve' => false,
        // 验证码图片高度
        'imageH'   => 30,
        // 验证码图片宽度
        'imageW'   => 120,
        // 验证码位数
        'length'   => 4,
        // 验证成功后是否重置
        'reset'    => true
    ],

在这里插入图片描述

实现点击随机生成验证码:
οnclick=“this.src=’{:captcha_src()}?’+Math.random()”
显示验证码图片
src="{:captcha_src()}"

                    <input type="text" id='verify' class="pull-left" name="yanzhengma" placeholder="这里输入验证码">
                    <img class="pull-right" src="{:captcha_src()}" onclick="this.src='{:captcha_src()}?'+Math.random()">

在这里插入图片描述

login控制器 接收处理登录:

<?php

namespace app\admin\controller;

use app\admin\model\Manager;
use think\Controller;
use think\Validate;

class Login extends Controller
{
    function login(){
        //如果没接收post请求 就跳转
        if($this->request->isPost()){
            $input = input();

            //验证规则
            $rult = [
                'username|用户名' => 'require',
                'password|密码' => 'require',
                'yanzhengma|验证码' => 'require|captcha'
            ];
            //生成验证起
            $validate = new Validate($rult);
            //检测是否成功
            if(!$validate->check($input)){
                $this->error($validate->getError());
            }
          //密码加密
            $str =  encrypt_password($input['password']);
            //sql语句
            $res = Manager::where('username','=',$input['username'])->where('password','=',$str)->find();

            if($res != null){
                //登录成功
                session('user',['username' => $input['username'],'password'=>$str]);
                return $this->success('登录成功!','admin/goods/index');
            }else{
                //登录失败
                return $this->error('登录失败!','login');
            }


        }else{
            //不启用 模版布局 功能
            $this->view->engine->layout(false);
            return view();
        }

    }
}

在这里插入图片描述
密码加密工具函数:
common.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
if(!function_exists('encrypt_password')){
    function encrypt_password($string){
        $salt = 'sane1m41kmfds3prrf';
        return md5($salt.md5($string));
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值