就是说,有什么 php 的方法,能够探测到"用户离开我的网站"的事件,
而及时调用 session_destroy();吗?

解决方案 »

  1.   

    <body onunload="window.open('logout.php')">
    ....
    </body>然后在logout.php中写
    <?
    session_destroy();
    ?>
    <Script>
    window.close();
    </Script>
      

  2.   

    谢谢 youbest。JavaScript 事件处理器 onunload 是只要离开页面,就会触发。有三种情况:1.离开这个页面,但是目的地是在同一个网站的另一个页面,并且还向要保留
     session 变量的传递。
    2.离开这个页面,同时离开这个网站,去到另一个网站的页面。又包含两种情况:通过在 location 输入地址;通过原来网站页面里的链接。
    3.关闭浏览器窗口,当然也就同时离开这个页面,同时离开这个网站了。您的解法只适用于情况3。我想寻求的答案是在情况1 下面能够正常保留 session,
    在情况2 和情况3 下面执行正常功能 (改变浏览网站,或者关闭窗口)的同时,
    session_destroy();还望进一步指教。谢谢。切盼。
      

  3.   

    新浪现在好像没有免费的邮箱注册了?:)我现在不是新浪用户,可否麻烦 chinaworker(网络混混ChinaWorker.com) 兄
    帮忙对新浪的邮箱系统进行一个简略而清晰地介绍?同时我注意到, 这里 CSDN 的解决办法是让用户主动地去点击“注销我的登录”
    来触发注销功能。难道没有好的方便的方法,让程序自动监测,判断事件,自动注销吗?
      

  4.   

    >>>就是说,有什么 php 的方法,能够探测到"用户离开我的网站"的事件,
    >>>而及时调用 session_destroy();吗? 探测用户离开你的站点就是说此用户已经没有和我会话,用户和我会话的标准是什么?session_id(),当用户造访我的时候,我客气的留下了他的姓名,同时我告诉他我用了哪个会话间和用户会话(session_id),当然了,如果他客气的通知我离开了我会很高兴他的造访同时我会取消我和他的会话间(session_id),然而访问我的用户那么多,我总不能只照顾他一个,因此我要做别的事情,我会强迫我自己要注意照顾客人,因此我会每隔一段时间看看我的来访用户是否在做他们的事情,因此我就核对一下我记录下的用户(用户名与session_id).我看到我的记录中有用户user1在会话室aaaabbbccccc000011这间会话室内,因此我就去找这个房间看看用户还在不(注意,我这里的房子可不容许空人在哦)..,我发现这可房屋还存在,于是我晓得了,他还没走。如果他不通知我他的离去而我的记录上还有他的名字,这怎么办呢?没问题,我还是按他的名字去找这个房间,由于房间是不允许空着的,当这个用户不说一声的走后,虽然我还没更新我的用户登记单,但他的房间已经自动的退了,如果我找不到这个房间,我就会将这个用户从我的登记册上删除的...因此我的登记册应该能够保证我的现有客人记录
    实现方法:
    ========   用户登陆,注册用户资料,比如说  ip+session_id()  or username+session_id();   定时请求服务器(服务器session会话存活时间内) ,   被请求的页面负责扫描数据库内online表(我暂时使用online表来保存我们记录的数据)   取出所有session_id 然后与php.ini中设置的session.save_path目录进行核对   如果发现从数据库中取出的session_id在session.save_path没有找到对应的文件,则删除   数据库中这条记录   最后我们统计online内的总记录,或取出数据的总条数,这就是当前在线人数这个功能很依赖session以下是我另外一种统计在线人数的方法
    http://www.dev-club.com/club/bbs/showEssence.asp?id=23132
      

  5.   

    1.离开这个页面,但是目的地是在同一个网站的另一个页面,并且还向要保留
     session 变量的传递。——浏览器产生刷新事件
    2.离开这个页面,同时离开这个网站,去到另一个网站的页面。又包含两种情况:通过在 location 输入地址;通过原来网站页面里的链接。——浏览器产生刷新事件
    3.关闭浏览器窗口,当然也就同时离开这个页面,同时离开这个网站了。——浏览器产生关闭事件可以通过浏览器的window.onbeforeunload事件获得注意:
    1、onload事件在ie6+sp1下不可靠
    2、注意排除直接“刷新”和F5键但是你忽略了一个事实:网络故障和关闭计算机。此时没有可供参考的任何信息
    所以通常以查表法判断用户的在线情况
      

  6.   

    谢谢 sports98() 和  xuzuning(唠叨) 两位仁兄。
    历经近4个月的等待,终于等到高手了。
        致