我遇到了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))
]);
答案 0 :(得分:3)
在Laravel 5.2中,您需要将CaptchaServiceProvider中的第29行更改为
$this->app['router']->group(['middleware' => 'web'], function () {
$this->app['router']->get('captcha/{config?}', '\Mews\Captcha\CaptchaController@getCaptcha');
});
答案 1 :(得分:2)
我解决了这个问题。
在Laravel 5.2中,您需要更改CaptchaServiceProvider to
$this->app['router']->get('captcha/{config?}', \Mews\Captcha\CaptchaController@getCaptcha')->middleware('web');