按IP地址和时间间隔限制表单提交率

时间:2011-10-19 07:39:40

标签: php mysql forms ip intervals

关于如何限制表格在一小时内提交的时间的上一个问题,有人说:

select count(*) from mysql_table where uid='$uid' and timestamp > (DATE_ADD(now(), INTERVAL -1 HOUR););

看起来它会起作用,但我不知道如何。首先,我想用IP替换uid:

select count(*) from mysql_table where ip='$ip' and timestamp > (DATE_ADD(now(), INTERVAL -1 HOUR);); 

但之后我不太确定时间戳> (DATE_ADD(now(),INTERVAL - 1小时););实际上有效。我确实为每个帖子提交了一个时间戳,但我不知道其余部分是如何工作的,有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:1)

您的查询计算“mysql_table”

中存在的记录数
select count(*) from mysql_table

并将该计数限制为具有ip = user_ip

的记录
where ip='$ip'

和timestamp(存储录制时间的日期/时间列)大于表示“一小时前”的时间

timestamp > (DATE_ADD(now(), INTERVAL -1 HOUR)

(请记住,每次插入记录时,您可能会将时间戳字段设置为当前日期/时间) 您需要做的是将此结果与允许的最大值进行比较,并确定它是否良好。