laravel5.4生成验证码的代码

发布时间 - 2026-01-11 02:54:40    点击率:

本篇博客介绍使用gregwar/captcha实现验证码的具体操作步骤,以及可能遇到的问题和解决办法。

操作步骤:

1.在laravel5.4项目根目录下找到 composer.json 这个文件,

添加 "gregwar/captcha": "dev-master" 和 "Gregwar\\Captcha\\": "vendor/Captcha/" 到composer.json文件中,如下图所示,

接下来,在项目根目录执行composer update,然后再执行composerdump-autoload 命令。

第二种方法:

添加

"gregwar/captcha": "1.*" 到composer.json这个文件中,如下图所示。

2. 然后打开命令行,找到项目的根目录,运行composer update,

可以看到这个扩展库已经下载好了,

3.接下来,就可以正常使用验证码了,

先定义路由:

接下来,介绍两种显示验证码的情况:

一、直接在网页上输出验证码图片

在控制层里新建一个codeController.php,1 <?php2 namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

//引用对应的命名空间
use Gregwar\Captcha\CaptchaBuilder;
use Session;
class CodeController extends Controller{
  public function captcha($temp)
  {  
    $builder = new CaptchaBuilder();
    $builder->build(150,32);
       //获取验证码内容
    $phrase = $builder->getPhrase();
    //把内容存入session
    Session::flash('milkcaptcha', $phrase); //存储验证码
    ob_clean(); //清除缓存
    return response($builder->output())->header('Content-type','image/jpeg'); //把验证码数据以jpeg图片的格式输出
  }

}

然后在浏览器里访问之前定义好的路由,直接访问这个方法,就能看到输出的验证码了

第二种方法:在表单里显示验证码,把上面该文件路径写到<img>标签的src属性中,

显示如下:

这里有两个问题需要注意,照着下面的方法去直接输出验证码,你会发现验证码显示不出来,反而是一堆乱码,

public function code($tmp)
{
//生成验证码图片的Builder对象,配置相应属性
$builder = new CaptchaBuilder;
//可以设置图片宽高及字体
$builder->build($width = 100, $height = 40, $font = null);
//获取验证码的内容
$phrase = $builder->getPhrase();
//把内容存入session
Session::flash('milkcaptcha', $phrase);
//生成图片
header("Cache-Control: no-cache, must-revalidate");//清除缓存
header('Content-Type: image/jpeg');
$builder->output();
}

输出一下$phrase,发现验证码内容已经获取到了,是图片生成部分出的问题,

// header("Cache-Control: no-cache, must-revalidate"); 这行代码的作用是清除缓存,防止出现验证码不能刷新或显示不出来的情况,但是并没有起作用,改用 ob_clean(); 去清除浏览器缓存。[/code]

然后是

header('Content-Type: image/jpeg');
$builder->output();

这两句话的问题,

$builder->output();

返回的只是验证码图片的一些信息,并不是一张图片,所以当把它直接输出时,出来的并不是一张图片。

只有这样写

$buildGer->output()->header('Content-type','image/jpeg')

直接输出的时候,才会以图片的形式直接输出验证码。[/code]

当把它放到<img>的src属性中,<img>标签会自动以图片的格式输出它,也就是说

header('Content-type','image/jpeg')

这时候这句话是没必要的,所以不管是

$buildGer->output())->header('Content-type','image/jpeg')

这样写,还是

header('Content-Type: image/jpeg');$builder->output();

这样写,结果都会显示验证码图片。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# laravel5.4生成验证码  # laravel5.4验证码  # laravel验证码  # Laravel5.2使用Captcha生成验证码实现登录(session巨坑)  # 用Laravel Sms实现laravel短信验证码的发送的实现  # laravel中短信发送验证码的实现方法  # Laravel下生成验证码的类  # 使用 laravel sms 构建短信验证码发送校验功能  # laravel5.4生成验证码的实例讲解  # Laravel8 使用图形验证码做登录功能的实现  # 验证码  # 把它  # 种方法  # 所示  # 如下图  # 操作步骤  # 好了  # 不出来  # 就能  # 两种  # 这句话  # 可以看到  # 然后再  # 正常使用  # 写到  # 表单  # 没必要  # 会以  # 解决办法  # 你会发现 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Bootstrap整体框架之CSS12栅格系统  JS中对数组元素进行增删改移的方法总结  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  清除minerd进程的简单方法  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何在 React 中条件性地遍历数组并渲染元素  javascript中闭包概念与用法深入理解  如何用搬瓦工VPS快速搭建个人网站?  JavaScript如何实现错误处理_try...catch如何捕获异常?  PHP 500报错的快速解决方法  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  实例解析Array和String方法  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何快速搭建二级域名独立网站?  Laravel如何处理CORS跨域请求?(配置示例)  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何选择PHP开源工具快速搭建网站?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  香港服务器网站推广:SEO优化与外贸独立站搭建策略  无锡营销型网站制作公司,无锡网选车牌流程?  智能起名网站制作软件有哪些,制作logo的软件?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  网站制作壁纸教程视频,电脑壁纸网站?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  如何在 Pandas 中基于一列条件计算另一列的分组均值  利用 Google AI 进行 YouTube 视频 SEO 描述优化  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  如何用PHP快速搭建CMS系统?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel怎么使用artisan命令缓存配置和视图  如何快速搭建虚拟主机网站?新手必看指南  如何在万网主机上快速搭建网站?  如何快速搭建高效WAP手机网站?  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何构建满足综合性能需求的优质建站方案?