laravel5.4生成验证码的实例讲解


Posted in PHP onAugust 05, 2017

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

操作步骤:

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

laravel5.4生成验证码的实例讲解

添加

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

laravel5.4生成验证码的实例讲解

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

laravel5.4生成验证码的实例讲解

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

3.接下来,就可以正常使用验证码了,先测试验证码是否可以正常显示出来,

先定义路由:

laravel5.4生成验证码的实例讲解

然后在控制层里新建一个codeController.php,

<?php 
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');
 }

}

然后在浏览器里访问之前定义好的路由,就能看到验证码了

laravel5.4生成验证码的实例讲解

另外,还可以在composer.json中这样写,

laravel5.4生成验证码的实例讲解

还是在项目根目录执行composer update,然后在执行composer dump-autoload 命令。

同样可以达到效果。

最后,说一下我曾经遇到的问题,网上好多生成laravel验证码图片都是这样写的,

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();
}

我照着试了试,结果验证码图片显示乱码,不显示图片,如下图:

laravel5.4生成验证码的实例讲解

后来改了改

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');
 }

就可以正常显示了。

以上这篇laravel5.4生成验证码的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP中的日期处理方法集锦
Jan 02 PHP
随时给自己贴的图片加文字的php代码
Mar 08 PHP
PHP $_SERVER详解
Jan 16 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
php密码生成类实例
Sep 24 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP多态代码实例
Jun 26 PHP
php 的反射详解及示例代码
Aug 25 PHP
php 算法之实现相对路径的实例
Oct 17 PHP
tp5框架无刷新分页实现方法分析
Sep 26 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 PHP
CakePHP框架Model函数定义方法示例
Aug 04 #PHP
CakePHP框架Model关联对象用法分析
Aug 04 #PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 #PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 #PHP
php7安装yar扩展的方法详解
Aug 03 #PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 #PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 #PHP
You might like
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
php创建session的方法实例详解
2015/01/27 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
学习jquery之一
2007/04/27 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
javascript每日必学之多态
2016/02/23 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
对于Python中RawString的理解介绍
2016/07/07 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
django中模板的html自动转意方法
2018/05/27 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
python样条插值的实现代码
2018/12/17 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python3正则模块re的使用方法详解
2020/02/11 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
django form和field具体方法和属性说明
2020/07/09 Python
结婚通知短信大全
2015/04/17 职场文书
Python闭包的定义和使用方法
2022/04/11 Python
GO中sync包自由控制并发示例详解
2022/08/05 Golang