学习网站会员限制问题:
1.同一时间只可以登陆一个帐号:在会员注册(注册是收费的)的时候我数据库里有个logon字段默认值为"F",会员登陆时,不但通过用户名密码还有这个"F"依据判断,才能登陆。在会员登陆以后我用一个UPDATE语句将其改为"T"。点"注销"在UPDATE回来改为"F".
问题是:“有时候会员忘记"注销",下次就不能登陆了。我想有没有办法让他们在关闭页面的时候就执行那个UPDATE语句。”
2.为了防止多人购买一个帐号,分段时间登陆问题。我想在会员第一次登陆的时候获取客户端一种唯一性的信息。以后在同一地方登陆。
有思路的朋友帮帮忙!~ 

解决方案 »

  1.   

    关于1.让他们关闭页面这个问题是无法控制的,比如电脑突然重启等等不可控制因素,所以一般按session判断,超过多长时间没操作,更新数据库为用户退出
      

  2.   

    判断是否是点击“注销”按钮退出的,确实是一个非常难的问题,因为浏览器本身没有提供这样的句柄,我以前也出现过这样的需求,在CSDN上也是不了了之,所以现行的做法通过session,并且每个用户的session本身就能做到是唯一的。
      

  3.   

    可以通过 session  和数据库 保存信息进行验证
      

  4.   

    第一个问题同意2楼和3楼的方法,真没有什么好的办法实现,
    第二个问题,我不太清楚你为什么有这样的需求,不过说了,我就说一下我的意见,可以使用IP的做判断,不过,你这样子做的意思就是说,这个用户换个网段或换个地方就不能登录了,如果是哪种自动取得IP的用户,会很痛苦的。哥们,从用户的角度来看,我来了钱还要不能痛快的用,实在是不太好,如果是哪种花了很多钱才能登录的,我才不给别人用呢。
    话多了。呵呵。
      

  5.   

    我的第二个问题是怕好多用户买了一个帐号,通过不同的时间段在各自家中上。    而且根据IP判断是肯定不行的。就像你说的, 现在的用户都是自动获得IP的。 
     有没有别的方法呢?  
    比如说最好获取MAC地址之类能代表唯一性的啦!!~~
      

  6.   

      我页面关闭不能自动消除SESSION , 所以我用<div style=\'width:100px; color:#FF9900; cursor:pointer; margin-top:5px;\' onclick=\'"."session_start();session_destroy();window.close()\'></div>来清除SESSION的  。
    可是我不知道怎么样写像1楼说的那样。 
    SESSION没的时候执行update
      

  7.   


    session_destroy();的意思呢是:是指 将 session中保存的东西 全部销毁。
    后来你都销毁了还这么update啊
      

  8.   

    我关闭页面session不没~ 下次打开页面自动登陆了 。 不销毁没办法啊 ~ 
     真是不知道怎么写了。
      

  9.   

    1.将每次登陆的时间戳同时保存到session和数据库中,不禁止重复登录,但是可以自动踢掉上一个登录。
    类似QQ在其他电脑上登录的效果。2.恐怕得参考支付宝的安全证书了。
      

  10.   

    楼上:1.将每次登陆的时间戳同时保存到session和数据库中,不禁止重复登录,但是可以自动踢掉上一个登录。 
    类似QQ在其他电脑上登录的效果。能否说的具体一点呢?