thinkphp版本

5.0.24

安装验证码库

composer require topthink/think-captcha=1.0.8

captcha_img()方法修改 vendor\topthink\think-captcha\src\helper.php

function captcha_img($id = '')
{
    //return '<img src="' . captcha_src($id) . '" alt="captcha" />';
    $js_src = "this.src='".captcha_src()."'";
    return '<img src="' . captcha_src($id) . '" title="点击更新验证码" alt="点击更新验证码" onclick="'.$js_src.'" />';
}

config.php添加验证码配置

//验证码
    'captcha' =>[
        //验证码的字符集
        'codeSet' => '123456798',
        //设置字体大小
        'fontSize' => 18,
        //添加混淆曲线
        'useCurve' => true,
        //设置图片宽高
        'imagew' => 150,
        'imageH' => 35,
        //位数
        'length' => 4,
        //验证成功重置
        'reset' => true,
    ],

控制器 application/index/controller/index.php

<?php
namespace app\index\controller;

use think\Controller;

class Index extends Controller
{

    public function index()
    {
        return view('index');
    }

    //验证
    public function captcha(){
        if(request()->isPost()){
            $data = input('post.');
            if(!captcha_check($data['verifyCode'])) {
                // 校验失败
                $this->error('验证码不正确');
            }else{
                $this->success('验证码正确');
            }
        }
    }
}

视图 application/view/index/index.php

<form method="post" action="{:url('captcha')}">
    <input type="text" name="verifyCode" class="layui-input">
    <!-- <img src="{:captcha_src()}"> -->
    <div>{:captcha_img()}</div>
    <button type="submit">提交</button>
</form>

测试

http://www.tp5.com/index.php/index/index/index