From d284b0d50dabef2627ba9e38291f07e736dd0721 Mon Sep 17 00:00:00 2001 From: Savetheinternet Date: Tue, 18 Jan 2011 17:11:28 +1100 Subject: flood prevention --- inc/functions.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'inc/functions.php') diff --git a/inc/functions.php b/inc/functions.php index de188f0b..70a17d23 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -45,6 +45,20 @@ return $boards; } + function checkFlood($post) { + global $board; + + $query = prepare(sprintf("SELECT * FROM `posts_%s` WHERE (`ip` = :ip AND `time` >= :floodtime) OR (`ip` = :ip AND `body` = :body AND `time` >= :floodsameiptime) OR (`body` = :body AND `time` >= :floodsametime) LIMIT 1", $board['uri'])); + $query->bindValue(':ip', $_SERVER['REMOTE_ADDR']); + $query->bindValue(':body', $post['body'], PDO::PARAM_INT); + $query->bindValue(':floodtime', time()-FLOOD_TIME, PDO::PARAM_INT); + $query->bindValue(':floodsameiptime', time()-FLOOD_TIME_IP_SAME, PDO::PARAM_INT); + $query->bindValue(':floodsametime', time()-FLOOD_TIME_SAME, PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + return (bool)$query->fetch(); + } + function until($timestamp) { $difference = $timestamp - time(); if($difference < 60) { -- cgit v1.3