Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [PHP] Бан за флуд. (https://forum.antichat.xyz/showthread.php?t=125590)

Deathdreams 16.06.2009 20:15

[PHP] Бан за флуд.
 
Всем доброго времени суток.

Задумался над функцией бана в php,ниасилил.
Надеюсь на вашу помощь.

Вот пример на icq протоколе,что должна содержать функция:
она должна расчитывать время в секундах,когда пришло последнее сообщение и расчитывать время,когда пришло последнее.
если промежуток между временами больше трёх секунд,надо присвоить переменной $ban значение 1 и сделать предупреждение,что слишком часто приходят сообщения.Далее присвоить $ban значение 2 и т.п.когда колличество предупреждений привысит 5,добавить в файл bann.txt.Обнулять статистику предупреждений каждые 30 секунд.

m1lo 16.06.2009 20:49

и что тут непонятного? сам же все описал!!!

FireFenix 16.06.2009 21:05

PHP код:

//Грузим из файла параметры юзеров в массив
$user[]['ip'] - получаем айпи
$user
[]['last'] - получаем время последнего сообщения unix timestamp
$user
[]['warning'] - количество предупреждений (вначале 0)
$user[]['banned'] - состояние юзера (вначале False)

//по событию нового сообщения получаем $id юзера от кого пришло сообщение и делаем
if ($user[$id]['banned'] == False//Если пользователь не забанен
{
  if (
time() - $user[$id]['last'] < 3//Если время сообщений меньше 3 секунд
  
{
    
$user[$id]['warning']++; //Прибавляем 1 к предупреждениям
    
    
if ($user[$id]['warning'] > 0//Если предупреждений больше 0
    
{
      
//Вывод сообщения а том, что часто приходят сообщения
    
}
    
    if (
$user[$id]['warning'] > 5//Если предупреждений больше 5
    
{
      
//Вывод сообщения о забанивании
      //Запись в файл
    
}
  } elseif (
time() - $user[$id]['last'] > 30) { //Если время сообщений больше 30 секунд
    
$user[$id]['warning'] = 0//Обнуляем предупреждения
  
}
} else {
  
//Вывод сообщения о том, что юзер забанен


Если ждёшь, что тебе напишут готовый код, то тебе в раздел "Работа"

Deathdreams 16.06.2009 23:27

Мне просто требовался принцип и функции.

m1lo огромное спасибо за помощь.

Клоз.


Время: 10:44