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