kompam_net,
При добавлении юзером поста записываеш ему в сессию время.
Собсно перед добавлением поста считаываеш это время и если разница между текущим временем и тем что в сессии юзера больше установленного тобой интервала то добавляеш пост, иначе пишеш "извините но вы дюже быстрый"
M0rbid, Неподскажете где можно качнуть скрипт любого чата штоб там был антифлуд..Мне нужно глянуть а пример его работы. Нужны колонки в мускуле в тлице усерс етош должно быть? таймер от написания постов. Ну и сам упдате с комнаты Мнеб глянуть эх может ктото даст адрес к скрипту такого чата? мне ток глянуть и фсё...
21 Май 2010, 5:35=VIP=, та знаю я кое што..Не в этом дело, просто пользователи оч просят антифлуд я просто непойму как его вмудрить? Ну идея с интервалом времени после последнего поста мне понравилась
21 Май 2010, 5:36Я пых не знаю но думаю что моно сделать еще так: перед добавлением в базу скрипь проверяет последнее сообщение этого чела и если оно идентичное то выводится не флуди итд.
21 Май 2010, 6:01я придумал вот такую вот функцию, вроде работает
/////////// функция антифлуда ////////////
function anti_flood()
{
global $ip;
global $set_antispam;
$time_lim=$set_antispam;
$time_this=time();
// если юзера нет в списке записываем его
$sql_f=mysql_query("SELECT * FROM ban_flood WHERE id_user='".$_SESSION['id']."' or ip='".$ip."'");
if(mysql_num_rows($sql_f)==0)
{
mysql_query("INSERT INTO ban_flood SET
id_user='".$_SESSION['id']."',
ip='".$ip."',
time='".$time_this."'");
}
else // иначе проверяем его данные
{
$data_f=mysql_fetch_array($sql_f);
$diff=$time_this-$data_f['time'];
if($diff<$time_lim)
{
$flood=TRUE;
}
## обновляем время
mysql_query("UPDATE ban_flood SET
id_user='".$_SESSION['id']."',
ip='".$ip."',
time='".$time_this."'");
}
return $flood;
}
//////////////////////////////////////////