2015-12-06 102 views
0

當會話過期並且用戶自動註銷時,我正嘗試將網站重定向到主頁(現在它被重定向到joomla核心註冊頁面,我不希望用戶看到,因爲我在自定義組件中創建了自己的註冊頁面)。Joomla Session-> isActive()&註銷重定向不起作用

在我的模板的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 0.5。更新後,即使用戶自動註銷,它的行爲就好像會話仍處於活動狀態(通過echo「session is active」行檢查,如上所示)。

即使用戶已註銷,爲什麼會話仍處於活動狀態?有沒有替代$ session-> isActive()方法?

回答

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

+0

請注意,檢查會話狀態的方法是'$ session = JFactory :: getSession(); $ session-> getState();'它總是如此。 –