前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tp6框架验证码-----captcha

tp6框架验证码-----captcha

原创
作者头像
以星河为聘礼
修改2021-09-08 10:24:57
1.5K0
修改2021-09-08 10:24:57
举报
文章被收录于专栏:编码遇到的坑

在使用tp6自带的验证码遇到的坑,也去网上找了资料但是还是没能解决,自己通过另一种方式实现的,接下来就来讲一下不能显示captcha的方法

首先安装captcha验证码

代码语言:javascript
复制
composer require topthink/think-captcha

安装后会在vendor\topthink\think-captcha显示,同时在config目录下也有captcha.php

注意:安装完成验证码后需要在app\middleware 中间键 将session初始化 去掉注释

代码语言:javascript
复制
// Session初始化
 \think\middleware\SessionInit::class

前端调用tp6官方文档提供了两种

代码语言:javascript
复制
<div>{:captcha_img()}</div>

代码语言:javascript
复制
<div><img src="{:captcha_src()}" alt="captcha" /></div>

都可以,但是小编这两种都不能使用

接下来小编就讲如何解决这个·问题

首先在app下创建个目录能访问就行小编这里用的是controller目录

接下里就是路由,在router/app.php中创建路由

代码语言:javascript
复制
Route::get("verify","/home/verify");

接下来继续找到安装的captcha 在vendor/topthink/think-captcha/helper.php 找到captcha_img 方法只需要将 $src修改为如下

代码语言:javascript
复制
$src = '/home/verify';

然后返回到模板界面调用我们设置好的路由

代码语言:javascript
复制
<div><img src='/home/verify'/></div>

这里我们可以看到验证码可以调用了

问题解决!!!感谢大家观看

扩展

安装captcha后在config目录下也会有captcha配置文件,在里面可以自定义修改,如下图就是我用的配置样式

代码语言:javascript
复制
<?php
// +----------------------------------------------------------------------
// | Captcha配置文件
// +----------------------------------------------------------------------

return [
    //验证码位数
    'length'   => 4,
    // 验证码字符集合
    'codeSet'  => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
    // 验证码过期时间
    'expire'   => 1800,
    // 是否使用中文验证码
    'useZh'    => false,
    // 是否使用算术验证码
    'math'     => false,
    // 是否使用背景图
    'useImgBg' => false,
    //验证码字符大小
    'fontSize' => 14,
    // 是否使用混淆曲线
    'useCurve' => true,
    //是否添加杂点
    'useNoise' => true,
    // 验证码字体 不设置则随机
    'fontttf'  => '',
    //背景颜色
    'bg'       => [243, 251, 254],
    // 验证码图片高度
    'imageH'   => 0,
    // 验证码图片宽度
    'imageW'   => 0,
    // 添加自定义的验证码设置
    'verify' => [
        'length'    => 3,                 // 验证码位数
        'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
        'expire' => 18000,            // 验证码过期时间(s)
        'useImgBg' => false,           // 使用背景图片
        'fontSize' => 18,              // 验证码字体大小(px)
        'useCurve' => false,            // 是否画混淆曲线
        'useNoise' => false,            // 是否添加杂点
        'useZh' => false,           // 使用中文验证码
        'fontttf' => '',              // 验证码字体,不设置随机获取
        'bg' => array(243, 251, 254),  // 背景颜色
        'reset' => true,           // 验证成功后是否重置
    ],
];

欢迎大家一起学习!!共同进步!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意:安装完成验证码后需要在app\middleware 中间键 将session初始化 去掉注释
  • 扩展
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档