您的位置:首页 > 编程语言 > PHP开发

Laravel5 验证码Captcha 扩展

2017-03-14 14:26 591 查看
最近博主在学习Laravel5框架中,有一些心得。有人说php是世界上最好的语言,没有之一。我现在想说的是,Laravel5是php最好的框架没有之一,他的ORM思想,composer扩展非常好用,如果你现在还没有接触Laravel,真的OUT了 。

现在分享下我在做后台登陆时所用的验证码扩展

1、安装

Composer 安装 Captcha 扩展包:

composer require mews/captcha


注:Windows中使用该扩展包还需要安装 GD2 扩展(在php.ini中取消php_gd2.dll前面的注释)。

2、配置

使用Captcha服务提供者之前还需要在config/app.php中注册服务提供者:

'providers' => [
// ...
Mews\Captcha\CaptchaServiceProvider::class,
]


同时注册下相应门面:

'aliases' => [
// ...
'Captcha' => Mews\Captcha\Facades\Captcha::class,
]


如果要使用自定义的配置,还可以发布配置文件到config目录:

$ php artisan vendor:publish


编辑新生成的captcha.php:

return [
'default' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
],
// ...
];


3、使用示例

// app/Http/routes.php

Route::any('captcha-test', function()
{
if (Request::getMethod() == 'POST')
{
$rules = ['captcha' => 'required|captcha'];
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
echo '<p style="color: #ff0000;">Incorrect!</p>';
}
else
{
echo '<p style="color: #00ff30;">Matched :)</p>';
}
}

$form = '<form method="post" action="captcha-test">';
$form .= '<input type="hidden" name="_token" value="' . csrf_token() . '">';
$form .= '<p>' . captcha_img() . '</p>';
$form .= '<p><input type="text" name="captcha"></p>';
$form .= '<p><button type="submit" name="check">Check</button></p>';
$form .= '</form>';
return $form;
});


效果如下:



如果要返回原生图片,可以调用这个函数:

captcha();


或者

Captcha::create();


如果要返回URL:

captcha_src();


或者

Captcha::src();


如果要返回HTML:

captcha_img();


我们这个示例中使用的就是这个函数,或者调用
Captcha
门面上的
Captcha::img();
配置文件
captcha.php
中不同的配置项,可以这样调用:

captcha_img('flat');
Captcha::img('inverse');


欢迎大家关注我的其他Github博客简书,互相交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: