首页  >  文章  >  后端开发  >  Laravel的验证码库

Laravel的验证码库

韦小宝
韦小宝原创
2017-11-24 09:19:221436浏览

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

首先, composer.json中如下加入配置:

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

然后,已成习惯的命令:

composer update

接下来就可以正常使用了,根据具体的开发需求,可以有很多种方式去使用。

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

<?php$builder->save(&#39;out.jpg&#39;);

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

<?php
header(&#39;Content-type: image/jpeg&#39;);
$builder->output();

可以生成内联图片:

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

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

定义一个Controller:

<?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 KitController extends Controller {

   /**
    * Display a listing of the resource.
    *
    * @return Response
    */
   public function captcha($tmp)
   {
       //生成验证码图片的Builder对象,配置相应属性
       $builder = new CaptchaBuilder;
       //可以设置图片宽高及字体
       $builder->build($width = 100, $height = 40, $font = null);
       //获取验证码的内容
       $phrase = $builder->getPhrase();

       //把内容存入session
       Session::flash(&#39;milkcaptcha&#39;, $phrase);
       //生成图片
       header("Cache-Control: no-cache, must-revalidate");
       header(&#39;Content-Type: image/jpeg&#39;);
       $builder->output();
   }
}

下面我们可以设置相应的router访问这个验证码图片, 修改router.php:

Route::get(&#39;kit/captcha/{tmp}&#39;, &#39;KitController@captcha&#39;);

现在可以通过具体的url,可以访问看到这张图片了。

验证码

表单内部写的比较简单,看看即可:

<input type="text" name="captcha" class="form-control" style="width: 300px;">
<a onclick="javascript:re_captcha();" >
  <img src="{{ URL(&#39;kit/captcha/1&#39;) }}"  alt="验证码" title="刷新图片" 
       width="100" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"/>
</a>
<script>  
  function re_captcha() {
    $url = "{{ URL(&#39;kit/captcha&#39;) }}";
        $url = $url + "/" + Math.random();
        document.getElementById(&#39;c2c98f0de5a04167a9e427d883690ff6&#39;).src=$url;
  }
</script>

最后就是在form提交页面验证相应验证码,库中也为我们提供了相应方法:

$userInput = $request->get(&#39;captcha&#39;);
if($builder->testPhrase($userInput)) {
    //用户输入验证码正确
    return &#39;您输入验证码正确&#39;;
} else {
    //用户输入验证码错误
    return &#39;您输入验证码错误&#39;;
}

至此,验证码就完成了。以上就是Laravel的验证码库gregwar/captcha的使用过程,有兴趣的到PHP中文网搜索更多哦~

相关推荐:

laravel使用mongodb数据库的方法教程

Laravel中开发短信验证码发送功能

Laravel中关于model validation的使用示例


以上是Laravel的验证码库的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn