首页 > 编程语言 >Thinkphp8安装topthink/think-captcha验证码的和使用方法

Thinkphp8安装topthink/think-captcha验证码的和使用方法

时间:2024-09-21 14:12:28浏览次数:1  
标签:Thinkphp8 false 使用 验证码 默认 captcha topthink true

ThinkPHP8默认没有验证码,安装验证码可以使用composer来安装验证码

一、安装验证码

执行composer安装验证码

composer require topthink/think-captcha

二、使用方法

1、在目录app\middleware.php中开启session

\think\middleware\SessionInit::class

2、配置验证码

安装好验证码会在应用的config目录下面生成captcha.php文件,我们可以在里面进行配置我们的验证码

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

return [
    //验证码位数
    'length'   => 4,
    // 验证码字符集合
    'codeSet'  => '0123456789',
    // 验证码过期时间
    '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,
    //    ...
    //],
];

验证码其他参数介绍:

codeSet 验证码字符集合 略
expire 验证码过期时间(s) 默认1800
math 使用算术验证码 默认false
useZh 使用中文验证码 默认false
zhSet 中文验证码字符串 略
useImgBg 使用背景图片 默认false
fontSize 验证码字体大小(px) 25
useCurve 是否画混淆曲线 默认true
useNoise 是否添加杂点 默认true
imageH 验证码图片高度,设置为0为自动计算 默认0
imageW 验证码图片宽度,设置为0为自动计算 默认0
length 验证码位数 默认5
fontttf 验证码字体,不设置是随机获取 默认 空
bg 背景颜色 默认 [243, 251, 254]
reset 验证成功后是否重置 默认true置

 

3、在模板视图文件中使用验证码

<div>{:captcha_img()}</div>

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

或实现点击图片刷新验证码

<img name="captcha" src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}'+Math.random()">

4、后端框架中验证验证码

if(!captcha_check($captcha)){
 // 验证失败
};

三、结果展示:

 

标签:Thinkphp8,false,使用,验证码,默认,captcha,topthink,true
From: https://www.cnblogs.com/shemmor/p/18423965

相关文章

  • 2024 xp_CAPTCHA(瞎跑-白嫖版) 4.3最新版安装使用教程
    前言xp_CAPTCHA(瞎跑-白嫖版)是一个免费的burpsuite插件,具有自动化图形验证码识别的功能。在安装的过程中,我发现网上的教程基本都为其较早的版本,已经不具备参考价值。因而我写下本篇博客,介绍我安装与使用xp_CAPTCHA4.3版本的详细过程。项目地址https://github.com/smxiazi/NEW_......
  • 验证码图片生成 hutool-captcha
    一、使用的依赖此处需要引入的依赖hutool-captcha:<!--获取图形验证码--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-captcha</artifactId><version>5.8.18</version></dependency>注:hutool-captcha已经包含......
  • 一文看懂CAPTCHA验证
    CAPTCHA代表“全自动公共图灵测试,用于区分计算机和人类”。这些测试充当身份验证机制,以确保网站流量来自真人,而不是机器人。CAPTCHA测试可以在您与网站交互的过程中出现在各个时间点,例如在登录尝试、表单提交期间,或者当您的浏览活动模仿机器人流量时(例如,多次刷新浏览器或快......
  • 利用深度学习实现验证码识别-4-ResNet18+imagecaptcha
    在当今的数字化世界中,验证码(CAPTCHA)是保护网站免受自动化攻击的重要工具。然而,对于用户来说,验证码有时可能会成为一种烦恼。为了解决这个问题,我们可以利用深度学习技术来自动识别验证码,从而提高用户体验。本文将介绍如何使用ResNet18模型来识别ImageCaptcha生成的验证码。......
  • 001、安装thinkphp8
    01、在目录右键打开powershell,输入composer,能正常显示 02、输入composerconfig-grepo.packagistcomposerhttps://mirrors.aliyun.com/composer/,切换到国内镜像 03、输入composercreate-projecttopthink/thinkPHMTP8创建一个名字叫phmtp8的工程 04、在有composer......
  • Thinkphp8 通过中间件 和 属性 简单实现AOP
    转载请著名来源,侵权必究//属性接口declare(strict_types=1);namespaceapp\common\attribute;interfaceAttributeHandler{publicfunctionhandler(mixed$handler);}//不需要登陆属性declare(strict_types=1);namespaceapp\common\attribute;/***跳......
  • ThinkPHP8事件两种使用方式
    目录通过监听方式通过事件订阅智能订阅手动订阅监听方式生成事件监听类,在项目根目录下执行以下命令://生成一个UserLoginSuccess监听类phpthinkmake:listenerUserLoginSuccess执行之后,会在app->listener目录下生成UserLoginSuccess.php,代码如下:/**用户登录成......
  • Ubuntu 使用nginx部署thinkphp8配置
    server{listen80;server_nameemall.alliky.cn;root/var/www/html/EMALL_EVTP8_SERVER/public;indexindex.phpindex.htmlindex.htm;#防止文件缓存location~*\.(css|js|jpg|jpeg|png|gif|ico|woff|woff2|css.map|js.map|txt)${expires14d;add_headerC......
  • thinkPhp跨域topthink/think-cors
    composerrequiretopthink/think-corsThinkPHP跨域扩展安装composerrequiretopthink/think-cors配置配置文件位于 config/cors.php['paths'=>['api/*'],...]paths配置示例允许api目录下的跨域请求,* 代表通配符。['paths'=>[&......
  • Python selenium 网络抓取 recaptcha
    我想抓取一个网站,但在此之前有一个验证码,我什至使用api获取了数据,并且我还将其注入到网站中,因为网页没有提交按钮,我无法提交。流程是这样的,如果我解决同一网址中的验证码,隐藏的内容将被显示。但它并没有得到解决。我到处都找过了。我找不到解决方案。谁能帮我解决这个问题?......