laravel 图像验证码 Gregwar\\Captcha 和 mews/captcha

工具:

1. The PHP Package Repository( PHP 包仓库): https://packagist.org

2. Laravel Framework version 5.2.45

一. mews/captcha

http://laravelacademy.org/post/3910.html

1.安装

composer require mews/captcha   (安装最新的版本 , 指定版本composer require mews/captcha=2.1.0)

在composer.json中:

"require": {
        "laravel/framework": "5.2.*",
        "mews/captcha": "^2.1"

}

执行 composer install


注意: In Windows, you'll need to include the GD2 DLL php_gd2.dll as an extension in php.ini.(打开gd2扩展)

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,
    ],
    // ...
];
注:生成时出现错误:( 然后是手动创建的  captcha.php 文件 )

[League\Flysystem\Exception]
Impossible to create the root directory "".

-----------------------------------------------分割------------------------------------------------------

4.示例

// 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');


二. Gregwar\\Captcha

参考:http://www.jianshu.com/p/8e4ac7852b5a

1.安装 

composer require gregwar/captcha

之后在composer.json文件中加入自动加载:
"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "Gregwar\\Captcha\\": "vendor/Captcha/"
        }
    },

然后运行composer dump-autoload --optimize 命令


使用gregwar/captcha库:

$builder = new CaptchaBuilder;
$builder->build(150,32);
\Session::set('phrase',$builder->getPhrase()); //存储验证码
return response($builder->output())->header('Content-type','image/jpeg');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值