kohana用户登录添加错误

时间:2013-03-21 18:34:48

标签: forms validation authentication login kohana

我有以下登录代码:

if ($logged == true) {
                HTTP::redirect('profile/private');
            } else {
                $validation = Validation::factory($_POST)
                        ->rule('username', 'not_empty')
                        ->rule('password', 'not_empty');
                if ($validation->check()) {

                }
                $errors = $validation->errors('login');

这里的情况是如果没有输入用户名,将播放正确的消息(我在消息文件夹中的login.php文件中有消息,例如:'username'=> array('not_empty'=>'字段:字段不能为空',密码字段相同)。并且两个规则正常运行时出错。 但是当给出用户名和密码并且用户未被认证为“有效”(例如错误的密码或错误的用户名)时,我需要一条自定义错误消息(例如:'检查用户名或密码,可能按下CAPSLOCK')。怎么做到这一点?错误消息我不希望它只与一个字段相关,就像login.php字段中的所有消息一样。请帮忙

2 个答案:

答案 0 :(得分:1)

然后回答您的问题:这是一条额外的错误消息,供用户使用。这不是一个或您的模型属性(用户名,密码)的特定错误,因此它属于您的控制器。

只需在您的控制器中,检查用户是否已登录并回显错误。

if (!Auth::instance()->login($_POST['username'], $_POST['password'], $_POST['autologin'])) 
{
    echo 'Check username or password, Maybe CAPSLOCK is pressed';
}

答案 1 :(得分:0)

根据documentation如果你调用$ validation-> errors()没有定义模板,它会给你一个错误数组,然后你可以看看$ errors数组并确定哪种类型你得到的错误,并做出适当的反应