欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

laravel5验证码

程序员文章站 2022-04-05 10:05:22
laravel框架是一个“非常优雅的框架”的框架,但是laravel框架中却没有像TP 以及Ci框架中自带的验证码类,此时就需要引入第三方库,下面我们就开始吧!!! 参考文章链接:http://www.jianshu.com/p/8e4ac7852b5a 效果展示: 代码实现: 在Laravel中有 ......

 laravel框架是一个“非常优雅的框架”的框架,但是laravel框架中却没有像tp 以及ci框架中自带的验证码类,此时就需要引入第三方库,下面我们就开始吧!!!    参考文章链接:http://www.jianshu.com/p/8e4ac7852b5a

效果展示:

laravel5验证码

laravel5验证码

laravel5验证码

 

代码实现:

 

在laravel中有很多图片验证码的库可以使用,本篇介绍其中之一:gregwar/captcha,这个库比较简单,在laravel中比较常用。下面我们就来介绍下使用细节:

1、首先,进入laravel框架根目录下打开 composer.json中如下加入配置:

 

"require": {  
        ...  
        "gregwar/captcha": "1.*"  
    },  


laravel5验证码

 

2、打开cmd进入laravel框架根目录

   执行

 
composer update  


laravel5验证码

 

安装成功!

laravel5验证码

 

3、这样就可以使用了

    1、控制器定义方法生成验证码图片

<?php  
namespace app\http\controllers\frontend;  
use illuminate\http\request;  
use app\http\requests;  
use app\http\controllers\controller;  
use gregwar\captcha\captchabuilder;  
use session;  
  
class registercontroller extends controller  
{    
  
      
  
    /** 
     * 验证码生成 
     * @param  [type] $tmp [description] 
     * @return [type]      [description] 
     */  
    public function captcha($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();  
    }  
  
       
}  
 


  2、定义访问路由

//生成验证码  
route::get('/index/captcha/{tmp}', 'registercontroller@captcha');  

3、前台调用

 

<img src="{{ url('index/captcha/1') }}"  alt="验证码" title="刷新图片" width="100" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"> <span> <a id="change" href="javascript:;" code_src=""> 换一张</a></span> </div>  
$("#change").click(function(){  
       $url = "{{ url('index/captcha') }}";  
       $url = $url + "/" + math.random();  
       document.getelementbyid('c2c98f0de5a04167a9e427d883690ff6').src=$url;  
    })  

 

4、后台验证

 

//验证码检测  
             if(session::get('milkcaptcha')!=$code) {  
                return array("code"=>2,"msg"=>"验证码错误");  
             }   

 

验证码流程已经走通

 

下面还有很多方法:

  可以将验证码图片保存文件:

<?php
 
$builder->save('out.jpg');

        可以直接输出图片到网页:

<?php
 
header('content-type: image/jpeg');
$builder->output();

        可以生成内联图片:

<img src="<?php echo $builder->inline(); ?>" />

以下演示了其中一种使用方式,直接输出图片到网页。