怎么才能统计用户在登陆时输入10次错误

wwx840723 2007-07-26 06:12:27
怎么才能统计用户在登陆时输入10次错误(一段时间内,不考虑用表)。
我用的是SESSION统计IP跟次数
但我想问的是取出的两个IP怎么比较?

好象只有知道IP才能知道是不是同一个人在一段时间内输入错误?
...全文
251 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
affss 2007-07-27
  • 打赏
  • 举报
回复
session是基于一个会话时间段的,关闭浏览器,删除cookies,session就没有了,而LZ是要账号的长期的累计的错误,肯定要用数据库或文件保存下来,登录的时候读出来比较就是了,IP不关事,可以忽略。
ai_ni 2007-07-27
  • 打赏
  • 举报
回复
顶smartcatiboy()的..很好.
smartcatiboy 2007-07-27
  • 打赏
  • 举报
回复
若不使用数据库,则必须有一个全局帐号的数组表,方法同数据库类似,但是用户多了开销~~

还有一种办法,就是吧当然还把【最近登陆时间】,【最近登陆失败次数】,【lock】放在客户端cookie里,这实现简单,但是人家禁用或者修改cookie你就废了。
smartcatiboy 2007-07-27
  • 打赏
  • 举报
回复
1、
session是由浏览器和服务器“维持”的,换PC、换浏览器、关浏览器、禁用cookie都会导致session丢失。
session+IP统计是无效的,原因在于:session丢失后,session记录的IP也做废。IP换了,session自然变新的(除非伪造,这里不讨论)

2、
如果lz的意思是帐号登陆10次就拒绝,那就以帐号为比较。最好使用数据库,每个帐号设立【最近登陆时间】,【最近登陆失败次数】,【lock】。
a、检查数据库,若【lock】,转b,否则转c
b、若now-【最近登陆时间】>规定时间,则【unlock】,转c,否则转e
c、显示登陆页面,Password通过,转f,否则转d
d、【最近登陆失败次数】+1,若【最近登陆失败次数】>10,则【lock】,【最近登陆时间】=now,转e,否则转c
e、拒绝浏览。
f、登入

3、尽量不要使用IP,由于IP重用的原因,误伤很大。
wwx840723 2007-07-27
  • 打赏
  • 举报
回复
不怎么明白,用户都没登陆,怎么能生成ID.session?
也有可能用户1在这台电脑上登陆了5次没成功,另一个用户2又在同一台电脑登陆了5次没成功。那到底是禁止这台电脑登陆呢?还是???
不知道怎么判断了。。。
晕呼....
ImN1 2007-07-27
  • 打赏
  • 举报
回复
session
总哈哈 2007-07-27
  • 打赏
  • 举报
回复
要么Cookie,要么SESSION,或者是在服务器用一个文本专门记录登陆错误的,那么这样也相当于是用表了.
wwx840723 2007-07-27
  • 打赏
  • 举报
回复
只是一段时间内统计,并不长期~
an9ryfr09 2007-07-26
  • 打赏
  • 举报
回复
不用去比较ip,因为session会在生成时会生成一个唯一的ID.session会自己去判断.
surreyk 2007-07-26
  • 打赏
  • 举报
回复
不需要考虑ip的问题,

if (++$_SESSION['flag'] == 10) {
// do something code here.
}

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧