用户表里加两个字段:
is_lock, tingint型,默认值为0
lock_time, 为timestamp类型程序中采用session来控制,输错一次,session加+,如果到了5, 则把用户表里的 is_lock 字段的值更新为1, 并且写入一个当前时间戳当用户下次登陆的时候,判断lock_time跟当前时间是否相差24小时,如果是,那么继续用户登陆,否则提示用户还没有解除锁定。依次循环。
当然,你也可以些个php脚本,在Linux使用cron来定期运行,判断lock_time 跟当前时间比较是否已经超过24小时,如果超过了,则把is_lock字段设置为0,遍历所有记录。如果没有cron权限就采用第一种方式。

解决方案 »

  1.   

    另外,如果session不保险的话,就在数据库里再加一个字段:
    error_num  类型为 tingint(1), 保存用户数错密码的次数,每次重置后为0;
      

  2.   

    也可以用cookie。楼上基本上都说了,不过漏了加上ip这个。这样就真正实现的比较完美了。
      

  3.   

    用session与数据库来做,二楼的方法是可以的,加不加上ip没有太大的限制作用,因为不同的ip与用户ID,他不可能一下在很多地方登录.