在论坛软件中反洪水

时间:2011-09-12 15:35:53

标签: php spam-prevention

我正在制作论坛软件。现在我想添加反洪水。因此,当帖子发布时,date("j-n-Y H:i:s")会被放入表格中。现在我希望每分钟最多4个帖子,或每个帖子之间15秒。检查它的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

你可以在15秒前获得

的时间
$time = date( 'Y-m-d H:i:s', time() - 15 );

然后查找此用户在此之后发布的帖子数量。如果计数大于0,则丢弃该帖子。

SELECT COUNT(*) FROM posts WHERE user_id = $userId AND posted >= '$time'

如果您更喜欢4个帖子/分钟规则,请执行相同的操作,但需要60秒,如果计数超过4则丢弃。

$time = date( 'Y-m-d H:i:s', time() - 60 );

SELECT COUNT(*) FROM posts WHERE user_id = $userId AND posted >= '$time'