Я хочу создать функцию, которая будет запрещать флудить, то есть, чтобы можно было писать сообщение раз в 5 секунд, к примеру. Хочу понять сам принцип, а не попросить вас решить мою конкретную проблему.
Например функция отправки сообщения выглядит так:
function sendMessage($User, $Message)
{
if( validate_spam() < 5000 ) { /* Если в функция возвращает меньше число чем 5 секунд */
return json_encode(["error"=>"Прекратите флудить"]);
} else {
validate_spam(0) // Это, типа, что-то вроде запуска таймера
}
}
То как должна выглядеть function validate_spam($param)
?
Ответ
Принцип такой:
Вы должны проверять когда было добавлено последнее сообщение
Нужно расчитать разницу в секундах между посленим добавленым сообщением и сейчас. Это можно примерно так делать: time() - $row['last_time_message']
если результат будет например 6 секунд - всё ок, добавляем сообщение в БД с текущей меткой времени, есдт результат например 4 секунды - флуд
Комментариев нет:
Отправить комментарий