【问题标题】:CodeIgniter Session out page display issuesCodeIgniter Session out 页面显示问题
【发布时间】:2014-05-08 07:43:23
【问题描述】:

我正在开发一个使用 Codeigniter 的网站。其中我使用了会话超时。如果我单击任何按钮或任何窗口,则我的登录屏幕将出现在该窗口或 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;

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

【问题讨论】:

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


【解决方案1】:

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

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

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

【讨论】:

  • 我知道如何在页面加载时处理会话,但是如果会话在页面加载后一段时间后过期,那么会发生上述错误,那么如何触发会话过期事件
【解决方案2】:

在登录时将变量设置为 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
   }
}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多