PHP根据用户角色导航到登录页面

时间:2015-04-12 08:20:08

标签: php

我试图在用户登录后将用户定向到特定页面,具体取决于他们的角色。我有以下代码登录用户并将其定向到主页,但不考虑他们的角色:

public function login($context, $local)
{
    if ($context->hasuser())
    { # already logged in
    $local->message('message', 'Please log out before trying to login');
    }
    else
    {
    if (($lg = $context->postpar('login', '')) !== '')
    {
        $page = $context->postpar('page', '');
        $pw = $context->postpar('password', '');
        if ($pw !== '')
        {
        $user = $this->eorl($lg);
        if (is_object($user) && $user->pwok($pw) && $user->confirm)
        {
            if (session_status() != PHP_SESSION_ACTIVE)
            { # no session started yet
            session_start();
            }
            $_SESSION['user'] = $user;
            $context->divert($page === '' ? '/' : $page); # success - divert to home page
        }
        }
        $local->message('message', 'Please try again.');
    }
            else
            {
                $page = $context->getpar('page', '');
            }
            $local->addval('page', $page);
    }
    return 'login.twig';
}   

我还有一个功能,可以检查用户是否是候选人:

    public function hascandidate()
    {
        return $this->hasuser() && $this->luser->iscandidate();
    }

如果他们是候选人,我正试图让系统将用户引导到页面'/ applyjob'。有人能帮忙吗?

干杯

2 个答案:

答案 0 :(得分:0)

'我不知道你在哪里尝试加载页面(你使用的是框架吗?) php的header()函数可能正是你要找的。

http://php.net/manual/en/function.header.php

答案 1 :(得分:0)

如果不确切知道hascandidate()返回什么,如果你使用任何框架,我最好的猜测就是尝试添加这个

if (hascandidate() == true) { $context->divert('/applyjob'); }

正上方:

$context->divert($page === '' ? '/' : $page);

相关问题