【问题标题】:Session auto expiry if user in idle如果用户处于空闲状态,会话自动到期
【发布时间】:2014-01-31 09:39:21
【问题描述】:

如果用户空闲长达 10 分钟,我需要销毁会话以及如何找到用户最后一次活动的时间,

if ($_SESSION['last_activity'] > 600)
{
 session_unset();   
 session_destroy();
}

这是正确的方式吗..

【问题讨论】:

标签: php


【解决方案1】:

使用session.gc_maxlifetime

Set session.gc_maxlifetime = 600 in phi.ini

ini_set('session.gc_maxlifetime',600); // in your script

【讨论】:

    【解决方案2】:
    //on pageload
    session_start();
    
    $idletime=60;//after 60 seconds the user gets logged out
    
    if (time()-$_SESSION['timestamp']>$idletime){
        session_destroy();
        session_unset();
    }else{
        $_SESSION['timestamp']=time();
    }
    
    //on session creation
    $_SESSION['timestamp']=time();
    

    【讨论】:

      【解决方案3】:

      在重置时间之前检查活动:

      if (isset($_SESSION['last_activity']) && $_SESSION['last_activity'] > 600){
          session_unset();   
          session_destroy();
      }else{
          $_SESSION['last_activity'] = time();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 2012-11-29
        • 2021-12-29
        • 1970-01-01
        • 2012-02-25
        • 1970-01-01
        相关资源
        最近更新 更多