Таймер на PHP как реализовать?

196
25 декабря 2018, 17:40

Я хочу создать функцию, которая будет запрещать флудить, то есть, чтобы можно было писать сообщение раз в 5 секунд, к примеру. Хочу понять сам принцип, а не попросить вас решить мою конкретную проблему.

Например функция отправки сообщения выглядит так:

function sendMessage($User, $Message) 
{
    if( validate_spam() < 5000 ) { /* Если в функция возвращает меньше число чем 5 секунд */
        return json_encode(["error"=>"Прекратите флудить"]);
    } else {
        validate_spam(0) // Это, типа, что-то вроде запуска таймера
    }
}

То как должна выглядеть function validate_spam($param) ?

Answer 1

Принцип такой:

  1. Вы должны проверять когда было добавлено последнее сообщение
  2. Нужно расчитать разницу в секундах между посленим добавленым сообщением и сейчас. Это можно примерно так делать: time() - $row['last_time_message']
  3. если результат будет например 6 секунд - всё ок, добавляем сообщение в БД с текущей меткой времени, есдт результат например 4 секунды - флуд
READ ALSO
как построить график в yii с помощью yii2-highcharts-widget

как построить график в yii с помощью yii2-highcharts-widget

Пытаюсь разобраться с тем, как построить график при помощи расширения yii2-highcharts-widget, чтобы по оси X шли месяцы, а по оси Y Вот код из оффдоки:

213
заход на сайт робота гугл

заход на сайт робота гугл

гугл исправно перебирал URL адреса на моем сайтено, почему то, с недавних пор, начал переходить по URL типа

183
Показ, в ExtJs, прогресса длительной операции

Показ, в ExtJs, прогресса длительной операции

Волею судьбы пришлось стать фронтендщиком и разобраться с ExtJsЕсть длительная процедура на php, которая вызывается из javascript

236