CodeIgniter会话输出页面显示问题

时间:2014-05-08 07:43:24

标签: php codeigniter session codeigniter-2 session-timeout

enter image description here

我正在开发一个我使用Codeigniter的网站。我使用会话时间out.aftet会话超时,如果我点击任何按钮或任何窗口,然后我的登录屏幕出现在该窗口或div。 例如。 如果我点击我的通知框,那么它也出现在那个div中,我该怎么办呢。

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

我能够在页面加载时处理会话,但是如果会话在页面加载时间过了一段时间后会出现上述错误,那么如何触发会话过期事件

2 个答案:

答案 0 :(得分:1)

在页面开始时..检查是否设置了会话变量。如果未设置,则将页面重定向到登录页面。

if(!isset($_SESSION['variable'])
{
    header('location:login.php');
}

会话将在配置文件中定义的时间后自动过期。希望这有助于:)

答案 1 :(得分:0)

在登录时将变量设置为true,然后单击或在控制器的构造函数中检查该变量的值。

public Function login()
{
   $this->session->set_userdata('loggedIn',TRUE);
}

现在检入控制器

function __construct()
{ 
parent::__construct();
if ($this->session->userdata('logged_in') == FALSE) 
   {
    redirect('');//if NOT then redirect to home page
   }
}

}