【thinkphp 基础 4】thinkphp 实现图形验证码和提交的验证码对比

227 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

thinkphp 实现图形验证码和提交的验证码对比

上一节我们实现了验证码生成,现在生成了验证码,我们怎么交给后端去验证呢?今天交给大家如何判断验证码填写的是否正确,下面开始我们的今天的课题

前端代码编写

因为使用的场景是多样化的,所以需要id来标识是生成哪个验证码,所以可以在captcha_img内部加上id属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>验证码判断</title>
</head>
<body>
    <form action="" method="post">
        <input type="text" name="code">
        {:captcha_img('login')}
        <button type="submit">验证</button>
    </form>
</body>
</html>

前台页面一个简单的提交页面就做好了,页面展示如下: 在这里插入图片描述 下一步我们要做的是验证,验证的环节就是在控制器里进行的。 ==不知道控制器的朋友可以去看一下第二节课程,这里不多说了==

控制器代码编写

  1. 首先我们需要先引用验证码类,直接引入对应的命名空间即可,使用编辑器的话应该都会有提示。
use think\captcha\Captcha;
  1. 第二步是在控制器里写下以下代码,主要实现:接收验证码,存在即进行验证,不存在则直接跳过。使用Captcha类提供的check方法可直接进行验证:
public function index()
{
    $code = input('post.code', '');
    if ($code) {
        $captcha = new Captcha();
        // 这里写入一个login是因为前端生成的时候写的id是login,也是根据这个来区分是哪一个验证码的
        if ($captcha->check($code, 'login')) {
            echo '验证码填写正确';
        } else {
            echo '验证码填写错误';
        }
        exit();
    }
    return $this->fetch();
}

验证效果

以上编写的各种验证效果,下图会全部演示: 在这里插入图片描述

感谢观看,本次教程到此结束!