<?php
$cache_expire = 10;
session_cache_limiter('private');
session_cache_expire($cache_expire );//s 
session_start();if ( isset($_SESSION['cache_expire']) )
{//超时了
  if (intval($_SESSION['cache_expire']) < time() )
  {//自己的方法检查过期
    session_unset();
    session_destroy();
  }
}else
 {
   $_SESSION['cache_expire'] = $cache_expire * 60 + time();//最后存在时间点
 }?>这个是变通方法但是这个方法必须要配合使用,相当于自己在代码上判断,
使用unset全局的,就会导致其它窗口的非此平台的session也被删除.有方法只删除自己的吗?
不能依赖session path.
不能在注销时再次判断首次登录时记录的时间.怎么说呢?我要实现记录在线时长.
设置自动过期时间是10分钟,如果超过不操作(在操作时,在某个时间点,如比过期时间少一分钟就更新一下登录时间,并保存这节时长到数据库>就要求重新登录.这样,登录时就可以比较最后登录时间是不是超过了过期时间,是就在在线时长上加上一个过期时间;因为自动过期这个时间节中,还要算是在线...如果在过期时间前手动注销,就保存登录到现在这个时长到在线时长中,并把登录时间设置成0,下次登录就知道上次是手动登出.
就不再加过过期时间到在线时长中.
但是我却发现用phhp手册中的代码不能实现自动过期,也就是过期时间不能控制.
我知道在检测是否已登录这里检测一下首次记入session的时间,但是这样就比较麻烦.是否还有更好的方法?而我现在代码中实现,会把其它人的也删除了,
如果我在同一个ie中开一个前台登录,再开一个管理后台,如前台登出了,后台就会被清出.....