Home  >  Article  >  Backend Development  >  Laravel verification code library

Laravel verification code library

韦小宝
韦小宝Original
2017-11-24 09:19:221434browse

There are many image verification code libraries available in Laravel. This article introduces one of them Laravel: gregwar/captcha. This library is relatively simple. , more commonly used in Laravel. Let's introduce the usage details:

First, add the following configuration to composer.json:

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

Then, it has become a habit Command:

composer update

Then you can use it normally. There are many ways to use it according to the specific development needs.

You can save the verification code image to a file:

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

You can directly output the image to the web page:

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

You can generate an inline image:

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

The following demonstrates one of the usage methods, directly outputting pictures to the web page.

Define a Controller:

<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

//Reference the corresponding namespace

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

Below we can set the corresponding router to access this verification Code the picture, modify router.php:

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

Now you can access and see this picture through the specific URL.

Verification code

It is relatively simple to write inside the form, just take a look:

<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>

The last step is to verify the corresponding verification code on the form submission page, which is also provided for us in the library The corresponding method:

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

At this point, the verification code is completed. The above is the usage process of Laravel's verification code library gregwar/captcha. If you are interested, go to PHP Chinese website to search for more~

Related recommendations:

laravel tutorial on how to use mongodb database

Laravel Develop SMS verification code sending function in

Usage examples of model validation in Laravel


The above is the detailed content of Laravel verification code library. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn