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('out.jpg');
You can directly output the image to the web page:
<?php header('Content-type: image/jpeg'); $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('milkcaptcha', $phrase); //生成图片 header("Cache-Control: no-cache, must-revalidate"); header('Content-Type: image/jpeg'); $builder->output(); } }
Below we can set the corresponding router to access this verification Code the picture, modify router.php:
Route::get('kit/captcha/{tmp}', 'KitController@captcha');
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('kit/captcha/1') }}" alt="验证码" title="刷新图片" width="100" height="40" id="c2c98f0de5a04167a9e427d883690ff6" border="0"/> </a> <script> function re_captcha() { $url = "{{ URL('kit/captcha') }}"; $url = $url + "/" + Math.random(); document.getElementById('c2c98f0de5a04167a9e427d883690ff6').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('captcha'); if($builder->testPhrase($userInput)) { //用户输入验证码正确 return '您输入验证码正确'; } else { //用户输入验证码错误 return '您输入验证码错误'; }
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!