@KamburI

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

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

function test(){

$time = $_COOKIE['time'] ?? 0;
if($time < time()){
setcookie('time', time() + 60); // ф-цию можно выполнять раз в 60 сек.
//выполняем ф-цию
}
}
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 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
  }
}
опять же, будет работать только для пользователей, которые не удалили сессию со своей стороны, например залогинены на сайте.
Ответ написан
Ваш ответ на вопрос

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

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