【问题标题】:Codeigniter session timeout messageCodeigniter 会话超时消息
【发布时间】:2012-04-03 00:45:40
【问题描述】:

我对 CodeIgniter 并不陌生,但我也不是专业人士……我想还是习惯了。我很想知道是否有人对如何在会话库终止非活动会话时显示会话已超时的消息有任何想法。

我已经尝试扩展 Session.php 库并添加:

// Is the session current?
    if (($session['last_activity'] + $this->sess_expiration) < $this->now)
    {
        $this->sess_destroy();
        $this->set_flashdata('timeout_message', "Session Timed Out."); // <--added
        return FALSE;
    }

但我认为当返回 FALSE 并且我的控制器重定向到将显示闪存消息的页面时..闪存数据被擦除。

有什么想法吗?

【问题讨论】:

  • 您在销毁会话函数后尝试使用它。
  • 嗯。没想到。你认为我可以使用:$this-&gt;sess_create() 后跟 set_flashdata 方法?
  • 试一试。但这违背了破坏会话的目的。

标签: php codeigniter session timeout message


【解决方案1】:

我认为你应该以稍微不同的方式来解决这个问题。假设您有某种主控制器,其他所有东西都从该控制器继承以运行一些基础知识,那么您可以添加一个您必须的方法版本。每次用户请求新页面时,您只需运行上面的检查。如果失败,您可以销毁当前会话(如果有,则运行注销方法),启动新会话,设置 flashdata 消息并重定向回主页或任何您想要的地方。这当然会启动一个新会话,但如果用户已注销并且所有宝贵的会话数据都已丢失,那肯定没问题?

【讨论】:

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