[英]Manage Joomla session timeout
我有一個自定義組件,其形式簡單,我正在努力如何管理會話超時。 如果用戶點擊另一個鏈接,他們將被Joomla自動重定向。 他們被重定向到登錄組件,成功登錄后,他們會轉到他們上次點擊的頁面。 這正是我想要的。
然而問題在於形式。 如果用戶超時並且沒有意識到,那么他們填寫此表單並點擊提交,他們將在同一頁面上留下默認會話超時消息。 為什么不重定向到登錄組件?
我想我需要在我的代碼中處理這種情況,所以當我的表單被提交時,它會在我的控制器中調用這個函數:
function process()
{
$user = JFactory::getUser();
if ($user->id)
{
//process form
}
else //give warning and bring them to a page upon successful login
{
JError::raiseWarning( 100, JText::_('You have timed out. Please login again.') );
JFactory::getApplication()->redirect(JRoute::_('my-account'));
}
}
但這不起作用,我得到相同的Joomla默認會話超時消息。 我也嘗試獲取會話而不是檢查用戶,但這也不起作用。
$session = JFactory::getSession();
if ($session->isActive())
{
//process form
}
else
{
JError::raiseWarning( 100, JText::_('You have timed out. Please login again.') );
JFactory::getApplication()->redirect(JRoute::_('my-account'));
}
有任何想法嗎?
您可以通過將以下代碼添加到表單HTML來防止表單超時:
<?php
JHTML::_('behavior.keepalive');
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.