Joomla Session-> isActive()&注销重定向不起作用

时间:2015-12-06 14:10:31

标签: session redirect joomla logout

我试图在会话到期时将我的网站重定向到主页并且用户自动注销(现在它被重定向到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()方法的替代方法?

1 个答案:

答案 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; }