ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[PHP] Бан за флуд.
  #1  
Старый 16.06.2009, 20:15
Аватар для Deathdreams
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию [PHP] Бан за флуд.

Всем доброго времени суток.

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

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

  #2  
Старый 16.06.2009, 20:49
Аватар для m1lo
m1lo
Banned
Регистрация: 30.05.2009
Сообщений: 167
Провел на форуме:
221264

Репутация: 33
По умолчанию

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

  #3  
Старый 16.06.2009, 21:05
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

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 {
  
//Вывод сообщения о том, что юзер забанен

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

  #4  
Старый 16.06.2009, 23:27
Аватар для Deathdreams
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию

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

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

Клоз.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Телефонный флуд number0 О Работе 1 15.03.2009 01:19
GUI для Viex (бан и флуд в общем чате - в вайперсе) A.Smith Чаты 3 15.02.2009 16:48
Qip исправлене :) флад на флуд! devil2007 Болталка 9 17.02.2007 19:38
супер бан на голосовом чате paltalk genchiiik Чаты 34 25.11.2006 03:13



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ