我有一个助手方法,它返回一个captcha图像url&存储密钥的会话:
function captcha(){
$builder = new CaptchaBuilder;
$builder->build();
Session::put('phrase', $builder->getPhrase());
return $builder->inline();
}
然后,用户编写captcha并提交表单,我的控制器获取所有内容并验证它:
'captcha' => 'required|same:'.Session::get('phrase')
问题是,无论它总是说什么,他们都会用短语&提交的文本框不相同。。。如果需要,我可以提供更多信息,如果这不是最好的方法,请给我建议,我只是在学习Laravel4。
编辑一些输出信息:
如果我从控制器返回值:
return "Session:".Session::get('phrase')." - Input:".$input['captcha'];
返回:Session:5zij5 - Input:5zij5
根据Laravel的文档,same
指的是另一个输入。
我建议使用自定义验证规则来比较会话和输入。