1:打开ecshop的数据库表ecs_sessions发现表为空。
2:在浏览器中输入127.0.0.1/ecshop (这是我本机ecshop的按装目录)。
3:再次打开表ecs_sessions这时候表中有数据了。
4:将所有浏览器关闭,重新打开浏览器进入数据库的ecs_session表,表中的数据仍然存在。
5:关闭浏览器,重启计算机,打开浏览器直接进入数据库ecs_session表,表中的数据不存在了。
问:这是为什么?没有什么驱动删除ecs_session中的数据,为什么数据会删除呢?

解决方案 »

  1.   

    因为 session 是个内存表内存表重启,就没数据了这个表是保存,在线用户信息的,你访问过网站,就有数据了
      

  2.   

    +++参见:bool session_set_save_handler ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc )
      

  3.   

    ecshop中没使用到session_set_save_handler这个函数呀。
      

  4.   

    那你就仔细看下程序里对ecs_session表操作的相关代码了。
      

  5.   

    普通的SESSION是关掉浏览器就会没有的。
    而现在只有重启或手动删除SESSION才会删除SESSION么?那如果是放在服务器上,而服务器又是N长时间不重启的,那要内存中要保存的数据那不是不得了了。这样不会有太大的影响吗?
      

  6.   

    你想多了,,,,ec的session机制,是用内存表来模拟的,并且有自动删除机制的
    但是为了不占用过多资源,会有几率性的触发这样的操作。事实上,php的session,也是通过GC,几率性的删除过期session文件的