Laravel 5 mewebstudio / captcha无法正常工作

问题描述 投票:3回答:2

我有Laravel 5 mewebstudio / captcha的问题。

我安装它,在我的页面上是验证码图像

echo captcha_img()
echo Form::text('captcha','',["class"=>"form-control","placeholder"=>trans('page.captcha')]);

这很好用。

但问题在于验证,在验证表单后,我收到有关不正确验证码的消息。

我的验证码:

    if (Request::isMethod('post')){

        //$data = Input::except(array('_token'));
        $data = Input::all();
        $rule = array(
            'name' => 'required',
            'firstname' => 'required',
            'bdate' => 'required',
            'email' => 'required|email',
            'password' => 'required|min:6|same:password_repeat',
            'password_repeat' => 'required|min:6',
            'captcha' => 'required|captcha'

        );

        $validator = Validator::make($data, $rule);

        if ($validator->fails()) {

            $errors = $validator->messages();

        }
    }

我认为验证码会话不起作用,因为在转储会话后我没有应该放入会话的验证码密钥(我在Captcha.php中找到)

      $this->session->put('captcha', [
        'sensitive' => $this->sensitive,
        'key'       => $this->hasher->make($this->sensitive ? $bag : $this->str->lower($bag))
    ]);
php session laravel-5 captcha laravel-5.2
2个回答
3
投票

在Laravel 5.2中,您需要将CaptchaServiceProvider中的第29行更改为

$this->app['router']->group(['middleware' => 'web'], function () {
            $this->app['router']->get('captcha/{config?}', '\Mews\Captcha\CaptchaController@getCaptcha');
        });

2
投票

我解决了这个问题。

在Laravel 5.2中,您需要将CaptchaServiceProvider to第26行更改CaptchaServiceProvider to

$this->app['router']->get('captcha/{config?}', \Mews\Captcha\CaptchaController@getCaptcha')->middleware('web');
© www.soinside.com 2019 - 2024. All rights reserved.