Задать вопрос
@KamburI

Как ограничить кол-во выполнений функции?

Есть такой код, который ограничивает кол-во выполнений в минуту. Проблема в том, что функция выполняется через минуту. Нужно, чтобы первый раз функция выполнилась сразу, а следующий через минуту.

function test(){

$time = $_COOKIE['time'] ?? 0;
if($time < time()){
setcookie('time', time() + 60); // ф-цию можно выполнять раз в 60 сек.
//выполняем ф-цию
}
}
  • Вопрос задан
  • 125 просмотров
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
anton_reut
@anton_reut
Начинающий веб-разработчик
Там где +60 пропиши +0
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых: на клиенте можно поменять куку(или вообще стереть) и будет выполняться сколько захочу раз. Можно хранить этот таймер в сессии, тогда возможности его поменять у пользователя не будет.

Во вторых:
function test(){
  if(empty($_SESSION['last_time']) || ($_SESSION['last_time']+60) < time()){
     $_SESSION['last_time'] = time();
     ... // do some
  }
}
опять же, будет работать только для пользователей, которые не удалили сессию со своей стороны, например залогинены на сайте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы