session.cookie_lifetime = 0;就可以了,他的时间是等到页面关闭session就会变成无效。

解决方案 »

  1.   

    楼主的想法个人觉得是不可能完成的.
    因为别人不可能一定会在离开的时候点击"离开",所以说,session里面可以记录
    进来的时间,但不可能有离开的时间,就算是象52juanjuan(Fibona) 老大说的那
    样,终止session,还是不可能得到用户离开的时间的.建议楼主使用点击页面的有效次数做为计数的单位.
      

  2.   

    我觉得关闭IE时应该可以触发一个事件来记录当前时间的.我不知道PHP能不能做到.
      

  3.   

    晕开始看错了,你要得到session的时间,俺不太清楚,如果你要得到一个用户访问某个页面的时间还是有方法的,就是开始是设一个进入时间,然后更新一个最后活动时间,最后活动时间可以考虑每隔30秒刷新一次,当用户正常退出时,更新她的那个最后活动时间,然后两个时间相减就得到了,如果用户非正常离开,可以设置他最近一分钟或多少没有刷新页面,活动就算离开就可以了,这样只是得到大体的时间,如果要得到准确的时间,等高手吧。
      

  4.   

    像六楼说的,用使浏览器关闭时打开一个窗口连接到一个注销的页面(javascript可以做到)。该窗口也自动关闭。浏览器获取页面后是不会向服务器发送任何消息的,当然服务器就无法知道浏览器是何时关闭。
      

  5.   

    当ie被关闭或url改变时将触发window.onbeforeunload和window.onunload事件,由于window.onunload事件对ie6不可靠,所以现在常用前者
    在window.onbeforeunload事件中打开弹出窗口执行注销session动作即可以下的讨论排除网络断线等物理因素
    鉴于http协议是无状态协议,所以你最多能记录到用户最后一次访问时的时间
    在session中设置两个变量,访问时:
    <?php
    session_start();
    if(!isset($_SESSION['start'])) {
      $_SESSION['start'] = time(); //记录首次进入的时间
      $_SESSION['end'] = time(); //令结束时间与首次进入的时间相同
    }else
      $_SESSION['end'] = time(); //再次进入的时间
    ?>
    加入js脚本
    <script>
    function window.onbeforeunload() {
      if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) {
        open("close.php");
      }
    }
    </script>close.php
    <?php
    session_start();
    // 处理上面定义的两个变量
    session_destroy(); //结束session
    ?>
      

  6.   

    to xuzuning(唠叨)老大.个人觉得,楼主的最终想法是想知道他的客户在他的网站上准确的看了多少时间
    (大概最好能精确到秒....),可能还会要求在每个页面看了多少时间.关于这个我
    也想过,但基于php是在服务器端工作,如果客户不点"离开"的话,根本无法记录
    正确离开时间.xuzuning(唠叨)老大的那个,个人觉得,也不合适楼主用.
      

  7.   

    我想的是用户直接关闭IE窗口,而不经过我做的退出登陆窗口,所以我不清楚能否在叉掉IE窗口时,能否触发事件,将时间保存下来.
      

  8.   

    to 楼主....************************************
    SenQ(在路上捡到分)已经说的很清楚了
    浏览器获取页面后是不会向服务器发送任何消息的,当然服务器就无法知道浏览器是何时关闭。
    ***********************************基于php的原理,个人不认为可以找到楼主所说的*****************
    我想的是用户直接关闭IE窗口,而不经过我做的退出登陆窗口,所以我不清楚能否在叉掉IE窗口时,能否触发事件,将时间保存下来.
    ****************
    不过,如果楼主找到方法,记录告诉在下一声:)多谢了