不过我想,如果用户按了退出注销的话是没问题的,但如果是直接关闭IE窗口怎么办呢,我想用<body onUnload='..'>来处理,不知道好用不

解决方案 »

  1.   

    刚刚讨论过的,
    http://expert.csdn.net/Expert/topic/3005/3005410.xml?temp=.7398798
      

  2.   

    session里写入一个标记,登录页面检查这个标记,如果不为空就disabled 提交按钮,他点不下去就不会重复登录了
    或者在登录程序里检查这个标记
      

  3.   

    我的也可能有此问题……虽然使用了session限制
      

  4.   

    我的是这样的:
    登陆后在session中设置用户名和加密后的密码,在通用的包含页面中判断用户名和密码是否和数据库一致,如果不一致,自动退出。
    防止重复登陆:在登陆页面判断session,如果session中已经存在用户名和密码,并且没有退出登陆(即session不为空),提示“已经登陆”,否则输出登陆表单。
      

  5.   

    Session和Cookie双重验证
    有的时候,比如是租的空间,没有办法确认和控制Session的有效期,但是Cookie是可以判断的。
    Session实际是个文件,所以不要在里面存明文的密码,只要打个标记就可以了
      

  6.   

    我用的是这种方法实现的:<script language="javascript">
      function moddataend()
            {
           var xml = new ActiveXObject("Microsoft.XMLHTTP");
    <?php
                echo 'xml.open("GET", "modend.php?id='.$id.'", false);';
    ?>
               alert('bye bye!');
           xml.send();
           xml = null;        }
       function moddatapre()
            {
               var xml = new ActiveXObject("Microsoft.XMLHTTP");
    <?php
               echo 'xml.open("GET", "modpre.php?id='.$id.'", false);';
               echo "alert('hello!');";
    ?>        xml.send();
           xml = null;
            }
    </script></HEAD>
    <body onload="moddatapre()" onunload="moddataend()" >
    </body>
      

  7.   

    最简单的方法就是将登录的用户ID与当前的session内容相比较,如果是同一人,就直接退出登录就行了!
      

  8.   

    上面的没一个好方法,还是用微软MSN 的方法吧!比这里强多了。
      

  9.   

    上楼详细说说微软MSN 的方法啊
      

  10.   

    偶的密码在Session中是64位加密的,而且不是公开密钥,所以我很放心的
      

  11.   

    在session有效的时间中,即用户登录后,无法再次登录,我的不存在经验和奖励的问题,只是感觉不加限制好像不很好,免得用户不断登录,多麻烦
      

  12.   

    我采用的方法,
    通过设置一个最后活动时间来实现判断它是否在线时通过时间差来计算,比如说在时差在三分钟之类算在线
    登录时把它的最后活动时间减掉三分钟这样就不会出现登录时该用户已经登录的现像,
    以后在页面中能过meta来进行刷新