本博客介绍了使用Greg war/验证码实现验证码的具体操作步骤,以及可能出现的问题和解决方法。
操作步骤:
1.在laravel5.4项目的根目录下找到file composer.json,
将“Greg war/captcha”:“dev-master”和“Greg war captcha ”:“vendor/captcha/”添加到composer.json文件中,如下图所示。
然后,在项目的根目录下运行composer update,然后运行composerdump-autoload命令。
第二种方法:
增加
Greg war/验证码' : '1。*”到composer.json,如下图所示。
2.然后打开命令行,找到项目的根目录,运行composer update,
您可以看到这个扩展库已经下载。
3.接下来,您可以正常使用验证码。
首先定义路线:
接下来,我们将介绍两种显示验证码的情况:
首先,在网页上直接输出验证码图片
在控制层新建一个codeController.php,1,1?php2命名空间App Http Controllers
使用App Http Requests使用App Http Controller Controller;使用照明 Http Request//引用相应的命名空间usegregwar captcha captchbuilder;使用会话;类CodeController扩展了Controller { public function captcha($ temp){ $ builder=new captchBuilder();$builder-build(150,32);//获取验证码内容$短语=$ builder-get词组();//将内容保存在session session : flash(' milk captcha ',$短语)中;//存储验证码ob _ clean();//清除cache return response($ builder-output())-header(' content-type ',' image/JPEG ');//输出jpeg图像格式的验证码数据}}然后在浏览器中访问之前定义的路由,直接访问这个方法就可以看到输出的验证码
第二种方法:在表单中显示验证码,将上面的文件路径写入img标签的src属性,
显示如下:
这里有两个问题需要注意。如果按照下面的方法直接输出验证码,会发现验证码无法显示,而是一堆乱码。
公共函数代码($tmp){//生成验证码图片的Builder对象,配置对应的属性$ builder=new CaptchaBuilder//可以设置图片的宽度和高度以及字体$ builder-build ($ width=100,$ height=40,$ font=null);//获取验证码的内容$短语=$ builder-get词组();//将内容保存在session session : flash(' milk captcha ',$短语)中;//生成图片标题(' cache-control : no-cache,必续');//清除缓存头('内容类型:图像/JPEG ');$ builder-output();}
输出$短语,发现验证码的内容已经获取,这是图片生成部分的一个问题。
//标头(' Cache-Control:无缓存,必须重新验证');这一行代码的作用是清除缓存,防止验证码被刷新或显示,但是不起作用。而是使用ob _ clean();清除浏览器缓存。[/code]
然后是
标题(' Content-type : image/JPEG ');$ builder-output();这两句话的问题,
$ builder-output();只返回验证码图片的部分信息,不是图片,所以直接输出时就不是图片了。
只能这样写
只有直接输出$ builder-output()-header(' content-type ',' image/JPEG ')时,验证码才会以图片的形式直接输出。[/code]
当你把它放到img的src属性中,img标签会自动以图片的形式输出,也就是说,
Header('内容类型',' image/JPEG ')这个句子在这个时候是不需要的,那么是否需要呢
$ builder-output())-标头('内容类型','图像/JPEG '),或
标题(' Content-type : image/JPEG ');$ builder-output();这样写,结果会显示验证码图片。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。