Joomla Session->isActive() & 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。更新后,即使用户自动注销,它的行为也就像会话仍然处于活动状态一样(我通过echo"session is active"行检查,如您所见)。

为什么即使用户已注销,会话仍处于活动状态?有没有$session->isActive()方法的替代方法?

由于浏览器未关闭,会话处于活动状态。请使用此:$user= JFactory::getUser();$app = JFactory::getApplication(); if ($user->id) {echo "session is active";}else{ $app->redirect('http://www.example.com','User logged out');exit; }

相关内容

  • 没有找到相关文章

最新更新