首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册器中的Laravel recaptcha验证不起作用

注册器中的Laravel recaptcha验证不起作用
EN

Stack Overflow用户
提问于 2015-04-15 03:13:36
回答 3查看 4.5K关注 0票数 4

我是Laravel的新手。我使用了这个recaptcha包:https://github.com/greggilbert/recaptcha,文档说:在您的验证规则中,添加以下内容:

代码语言:javascript
复制
$rules = array(
        // ...
        'g-recaptcha-response' => 'required|recaptcha',
    };

顺便说一下,我使用的是laravel 5的注册器:

代码语言:javascript
复制
<?php namespace taxman\Services;

use taxman\User;
use Validator;
use Illuminate\Contracts\Auth\Registrar as RegistrarContract;

class Registrar implements RegistrarContract {

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return \Illuminate\Contracts\Validation\Validator
     */
    public function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|confirmed|min:4',
            'telephone' => 'required',
            'g-recaptcha-response' => 'required|recaptcha',
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    public function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

}

但在本例中,laravel返回错误消息:“需要g-recaptcha-response”,但在视图中,我使用了以下命令:

代码语言:javascript
复制
<div class="form-group">
         {!! Recaptcha::render() !!}
 </div>

是的,这个字段不是空的!

所以,我想,我应该把'g-recaptcha-response' => 'required|recaptcha'放在别的地方吗?因为看起来,注册器中的验证器不起作用。

EN

回答 3

Stack Overflow用户

发布于 2015-08-24 15:10:48

如果有人仍然因为这个问题而拉扯他们的头发,只要删除验证规则中的'recaptcha'即可。

使用

代码语言:javascript
复制
'g-recaptcha-response' => 'required'

而不是

代码语言:javascript
复制
'g-recaptcha-response' => 'required|recaptcha'

请参阅http://tuts.codingo.me/google-recaptcha-in-laravel-application/

票数 8
EN

Stack Overflow用户

发布于 2015-05-03 07:46:12

如果您将以下内容粘贴到发生此操作的控制器中,则它应该可以工作。

$this->validate($request,'g-recaptcha-response‘=>’是否需要|recaptcha‘);

票数 0
EN

Stack Overflow用户

发布于 2015-05-17 04:28:24

根据文档https://developers.google.com/recaptcha/docs/verify,您需要检查g-recaptcha-response POST参数。因此,将其传递给validator()函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29635578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档