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

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

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

Laravel Captcha

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;
});

显示效果如下:

Laravel Captcha

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

captcha();

或者

Captcha::create();

如果要返回URL:

captcha_src();

或者

Captcha::src();

如果要返回HTML:

captcha_img();

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

Captcha::img();

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112978.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 计算机存储容量1tb等于多少,1tb等于多少mb(1tb等于多少gb)

    计算机存储容量1tb等于多少,1tb等于多少mb(1tb等于多少gb)1TB等于多少MB和多少GB?是电脑的硬盘!谢谢!1GB=1024MB(理论上)计算机存储信息的大小,最基本的单位是字节,一个汉字由两个字节组成,字母和数字由一个字节组成。容量的单位从小到大依次是:字节(B.1TB等于1024G。TB:太字节(Terabyte),计算机存储容量单位,也常用TB来表示。GB:吉字节(GB、Gigabyte,在中国又被称为吉咖字节或京字节或十亿字节或戟).1TB=…

  • C++11新特性之右值引用(&&)、移动语义(move)、完美转换(forward)

    1.右值引用个人认为右值引用的目的主要是为了是减少内存拷贝,优化性能。比如下面的代码:str为临时对象,然后调用Stringd的拷贝构造函数,将临时对象的值赋值给String,这种拷贝是完全没

    2021年12月28日
  • vc++可以编辑c语言吗?_vc6.0使用教程详解

    vc++可以编辑c语言吗?_vc6.0使用教程详解如何编写自己的VCL控件    用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。    VCL控件的开源,给我们带来了享之不尽的优点。不像曾经的ole控件以及ActiveX,你全然能够重写Delphhi标准控件,并且网上这方面的资源非常多。    关于怎样编写VCL控…

  • ArrayList扩容机制以及线程安全性

    ArrayList扩容机制以及线程安全性List扩容实现步骤总的来说就是分两步:1、扩容​ 把原来的数组复制到另一个内存空间更大的数组中2、添加元素​ 把新元素添加到扩容以后的数组中性能分析ArrayList作为动态数组,其内部元素以数组形式顺序存储的,所以非常适合随机访问的场合。除了尾部插入和删除元素,往往性能会相对较差,比如我们在中间位置插入一个元素,需要移动后续所有元素。源码分析先把ArrayList中定义的…

  • C#-数组截取的方法

    C#-数组截取的方法byte[]data=newbyte[]{0,1,2,3,4,5,6,7,8,9};byte[]tt=data.Skip(1).Take(data.Length).ToArray();take的参数如果大于数组的长度,则截取到数组结束

  • 九月份总结

    九月份总结

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号