Просмотр поста

.
Windler

Гг функция антифлуда, моя..
Функция возвращает время [time() + n сек.], когда пользователь сможет оставить пост..
Код:

/*
Инфо как бэ:
$table = таблица в которой хранятся сообщения модуля
$user = столбец содержащий ID юзера
$time_st = столбец содержащий время поста
$sec = Интервал в секундах
$val = Комментариев за интервал
$where = Дополнительные параметры в запрос (пример: AND `lol`=1 AND `lol2`=2)
*/
function flood($table, $user = 0, $time_st = 0, $sec = 0, $val =0, $where) {
global $user_id;
// Если какое то значение пустое, то задаём по дефолту
if (!$sec || !$val) {
$val = 2; 
$sec = 60; 
}
if ($user_id && $val) {
/*Если какое то значение не задано, то задаём по дефолту*/
if (!$time_st || !$user) {
$user = 'user_id';
$time_st = 'time';
}
//Запрос в таблицу
$req = mysql_query("SELECT * FROM `".$table."` WHERE `".$user."`='$user_id' AND `".$time_st."`>".(time() - 60)." ".($where ? $where : "")." ORDER BY `".$time_st."` DESC LIMIT ".$val);
if (mysql_num_rows($req) >= $val) {
while ($res = mysql_fetch_array($req)) {
if ($res[$time_st] + $sec > time())
$flood_sec = $res[$time_st] + $sec;
}
}
}
if ($flood_sec > 0)
return $flood_sec;
else
return false;
}