我试图在用户登录后将用户定向到特定页面,具体取决于他们的角色。我有以下代码登录用户并将其定向到主页,但不考虑他们的角色:
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'。有人能帮忙吗?
干杯
答案 0 :(得分:0)
'我不知道你在哪里尝试加载页面(你使用的是框架吗?) php的header()函数可能正是你要找的。
答案 1 :(得分:0)
如果不确切知道hascandidate()返回什么,如果你使用任何框架,我最好的猜测就是尝试添加这个
if (hascandidate() == true) { $context->divert('/applyjob'); }
正上方:
$context->divert($page === '' ? '/' : $page);