Laravel 5.*使用Captcha扩展包为应用生成验证码以及运用实例

Song2559 次浏览0个评论2017年07月21日

使用 Captcha 扩展包 为 Laravel 5 应用生成验证码 Laravel Captcha

1、需求与安装

我们通过 Composer 安装 Captcha 扩展包:

composer require mews/captcha

注: 要使用GD库,需要安装GD库,否则无法生成验证码图片,有时候本地测试可以,线上无法生成验证码,需要注意一下是否安装GD库,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

会在config目录下生成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;
});

显示效果如下:

Laravel验证码

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

captcha();
// 或者
Captcha::create();

如果要返回URL:

captcha_src();
//或者
Captcha::src();

如果要返回HTML:

captcha_img();

我们这个示例中使用的就是这个函数,或者调用Captcha门面上的方法:

Captcha::img();

要使用配置文件captcha.php中不同的配置项,可以这样调用:

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

4、如何设置点击刷新

<img  title="点击刷新" src="{{ captcha_src() }}" onclick="this.src='/captcha/default?'+Math.random();"/>

这样,点击就会自动刷新验证码了

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...