出给设计题,现在如果要对用户登录做限制(比如一天一个用户连续登录5次失败或者在1小时内连续3次登录失败旧block他一段时间)。你有啥思路?

解决方案 »

  1.   

    这不是mysql的限制吧,是你自己的程序限制。一般你可以参考一下动网或者DZ的表设置。
      

  2.   

    做个shell,将登陆信息先传给shell,shell再传给sql
    要自己编程
      

  3.   

    一般是在你自己的用户表中包括以下字段myuser ( uid, uname, failTime, failCnt)
    failTime 为首次登录错误时间。
    failCnt 为已出错次数。用户初始时 failTime = null, failCnt =0
    当用户登录错误时, set failTime=now(),failCnt =failCnt +1
    通过 failTime 是否为空,可心知道是否是首次登录。如非首次登录,则仅 set failCnt =failCnt +1
    如果用户登录正确,则清空这两个字段 set failTime = null, failCnt =0如果达到限制则进行 block, 根据 failTime  判断是否 unblock
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  4.   

    1.建一个用户登陆表。id,name,(登陆次数)nums,(状态)state,,(时间s)time_start,(时间o)time_over
    2.nums为0,state初使为unblock
    3.当用户登陆不成功,就将nums+1,当nums=5时,将state改为block,这时在time_start记录当nums=5时的时间是多少,当用户在一次登陆时,将这个时间写入time_over中,计算 time=time_start-time_over,如果time的值是多少,就可以将state改为unblock。
    4.当用户在一次登陆时,要检查一下state的值,如为block,那就不许登陆。
    5.不知道你明白没有