Laravel verification code library

韦小宝
Release: 2023-03-17 16:26:02
Original
1451 people have browsed it

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.*"
    },
Copy after login

Then, it has become a habit Command:

composer update
Copy after login

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;);
Copy after login

You can directly output the image to the web page:

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

You can generate an inline image:

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

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;
Copy after login

//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();
   }
}
Copy after login

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;);
Copy after login

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>
Copy after login

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;;
}
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template