本帖最后由 webstaryoyo 于 2014-07-13 12:36:20 编辑

解决方案 »

  1.   

    session.gc_maxlifetime 不是针对 session 有效时间的,而是针对垃圾回收进程 gc 的
    他告知 gc 进程,可以删除 session.gc_maxlifetime 秒之前修改过的临时文件当然,只要 sessionid 对应的临时文件存在,则 session 就有效要想自主控制 session 的行为,则需要自己编写处理代码。手册或网上的示例代码只是演示了基本写法,你需要根据你的需求进行扩展
      

  2.   

    session的超时时间并不是很准的。
    如果需要很准,则在session中记录过期时间,当session文件不存在,或存在但过期时间超时,则当失败。
    if(isset($_SESSION['name'])){
        if($_SESSION['name']['expire']>time()){
           echo 'session 未过期';
       }else{
           echo 'session 未过期';
       }
    }else{
        echo 'session 过期';
    }
      

  3.   

    谢谢,大致了解了
    楼上的
    if($_SESSION['name']['expire']>time()){
           echo 'session 未过期';
       }
    应该是echo 'session 已过期'; 吧感觉php里面没有确定的默认会话超时时间,如果想控制用户会话超时时间,需要自己编程控制的
      

  4.   

    if($_SESSION['name']['expire']>time()){
           echo 'session 未过期';
       }過期時間比現在小才過期啊,比現在大怎麼會過期呢?
    明天對于今天來講是過期?不會吧。
      

  5.   

    哦,理解有误,按照上面理解的话,那么
    if($_SESSION['name']['expire']>time()){
           echo 'session 未过期';
       }else{
           echo 'session 未过期';  
       }

    else{
           echo 'session 未过期';-----是不是应该改为 echo 'session 已过期'; ?
       }