如果你是在本机或者没访问量的测试机上测试,就算超过gc_maxlifetime设置的时间,默认的设置几乎不会启动垃圾收集器,所以session可能也不会失效

解决方案 »

  1.   

    try:php.ini
    ===================
    session.cookie_lifetime = 60
      

  2.   

    一样的问题的,session失效不失效,可能是你的apahce配置错误。并不是php的错误呢~去查看下apache吧
      

  3.   

    //删除session
      session_destroy();我这样就可以了。详细信息请见:
    http://www.blog.163.com/hbohuan/blog/static/2084898200772023553812/
      

  4.   

    你应该采用更高级的过期方法,例如在你的会话里加入$_SESSION['last_require_time']变量,每次执行页面先判断是否过期后更变该值。
      

  5.   

    用cookie的话有个新问题,即使用户一直在使用系统的话也会过期.这显然不是我们想要的.
      

  6.   

    To li1229363() :
    你说可能是apahce配置错误,但能否具体点?
    不过我在其他两个同事的机器上都试过,问题还是一样.所以问题应该不是出在apache上.
      

  7.   

    To lostgdi731(O_O):
    你这方法是可行,但问题是要写大量代码.所以不到万不得已不会走这条路.
      

  8.   

    说一下原理:
    除非手动删除变量,否则是否过期删除由系统决定!系统删除 session要两个条件:一是Session过期;二是垃圾收集程序启动!Session过期垃圾清除机制才给删除!
      

  9.   

    好象是session.gc_maxlifetime=0
    浏览器关闭就过期
    垃圾机制
    session.gc_probability = 1
    session.gc_divisor = 100
    ;[recommended]->session.gc_divisor = 1000
    ; 定义在每次初始化会话时,启动垃圾回收程序的概率。
    ; 这个收集概率计算公式如下:gc_probability/gc_divisor
    ; 比如:1/100 表示每一个新会话初始化时,有1%的概率会启动垃圾回收程序。
    session.gc_maxlifetime = 1440
    ; 经过此参数所指的秒数后,保存的数据将被视为'垃圾'并由垃圾回收程序清理。请google上面几个函数后就会有解
      

  10.   

    session.gc_probability = 100
    session.gc_divisor = 100每次会启动会话是就启动一次垃圾收集程序