我试图在会话到期时将我的网站重定向到主页并且用户自动注销(现在它被重定向到joomla核心注册页面,我不希望用户看到因为我在自定义组件中创建了自己的注册页面。
在我的模板的index.php文件中,我检查会话是否处于活动状态,并在会话过期时执行重定向:
$session = JFactory::getSession();
if (!$session->isActive()) {
echo "session is expired";
header('Location: http://www.example.com/');
exit;
}else{
echo "session is active";
}
这个解决方案工作正常,直到我更新到Joomla 3.4.5。在更新之后,即使用户自动注销,它的行为就像会话仍处于活动状态一样(我通过回显"会话处于活动状态"行,如上所示)。
为什么即使用户已注销,会话仍处于活动状态?是否有$ session-> isActive()方法的替代方法?
答案 0 :(得分:0)
会话处于活动状态,因为浏览器未关闭。请使用这个:
$user= JFactory::getUser();$app = JFactory::getApplication();
if ($user->id) {echo "session is active";}else{ $app->redirect('http://www.example.com','User logged out');exit; }