laravel框架中使用captcha引入验证码

本文介绍如何在Laravel5.1中集成并使用mews/captcha包来实现验证码功能,包括安装配置步骤及视图层调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过摸索,终于能在laravel 5.1中应用验证码了。

因为英语渣五水平,所以几乎没搜索到什么有用的,于是考虑在github上搜索验证码包!

提示: github上的package中往往会有使用说明,照着上面的实现,一般都能做出来。

 

我使用的是mews captcha

git 上的地址:https://github.com/mewebstudio/captcha 上面的使用很详细了。

 

动手实现:

-- 手动进入 laravel 项目目录

 

-- 在对应目录下,找到composer.json文件,打开它,添加如下语句:

如图:添加语句

{
    "require": {
        ....
        ....
        ....
        "mews/captcha": "~2.0"
    },
    "minimum-stability": "dev"
}    

-- 执行composer update, 如果报错,请先执行composer self-update, 然后再执行 composer update, 还是不行就 composer install

 

-- 找到config/app.php打开,添加如下语句:

1.打开这个文件,找到providers项,添加如下语句

Mews\Captcha\CaptchaServiceProvider::class,

2.找到aliases项,添加如下语句:

添加语句:

'Captcha' => Mews\Captcha\Facades\Captcha::class,

-- cmd窗口中执行 php artisan vendor:publish

 

通过上面的所有步骤,查看目录,你会发现在vendor下多了mews目录,并且你可以使用命名空间 use Captcha, 在config/captcha.php中存在一个验证码的配置文件captcha.php。

 

 

-- 上面的所有步骤在 https://github.com/mewebstudio/captcha 中同样存在!

 

我们来看一看新增的vendor/mews目录

我们找到vendor/mews/captcha/src/captcha.php

查找public 方法, 发现:

public function create($var) --- 生成验证码

public function check($var) --- 判断输入和验证码是否相等

public function src($var)     --- 输出img属性src的链接

public function img($var)    --- 输出img标签

-- 其中,$var 参数就是,config/captcha.php 中 对应的键,分别可以是:

default, flat, mini, inverse 代表了四种风格的验证码!可以针对不同风格进行配置,直接在config/captcha.php中修改配置项

视图层的调用:

@if($errors->has('captcha'))
            <div class="col-md-12">
              <p class="text-danger text-left"><strong>{{$errors->first('captcha')}}</strong></p>
            </div>
          @endif
          <img src="{{captcha_src()}}" onclick="this.src='{{captcha_src()}}'+Math.random()" title="点击图片重新获取验证码">

validate验证:

public function validatecap($data){
        $validator = Validator::make($data, [
            // 如何在这里转换数据
            'captcha' => 'required|captcha',
        ],[
            'captcha.required' => '请填写验证码',
            'captcha.captcha' => '验证码错误',
        ]);

        if($validator->fails()){
            return $validator->messages();
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值