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 面向对象详解
Sep 13 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
PHP基于imap获取邮件实例
Nov 11 PHP
php文件缓存类汇总
Nov 21 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
php常用表单验证类用法实例
Jun 18 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
php fread读取文件注意事项
Sep 24 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
关于PHP求解三数之和问题详析
Nov 09 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
php的ddos攻击解决方法
2015/01/08 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
Python和Sublime整合过程图示
2019/12/25 Python
Python实现图片识别加翻译功能
2019/12/26 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
百度软件工程师职位
2013/02/14 面试题
消防安全汇报材料
2014/02/08 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
离职信范本
2015/06/23 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL