@KamburI

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

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

function test(){

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

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

Войти через центр авторизации
Похожие вопросы
Spice IT Recruitment Москва
До 230 000 ₽
ImageSpark Санкт-Петербург
от 60 000 ₽
FrozenEon Киев
от 1 500 до 3 000 $
04 июн. 2020, в 03:14
1000 руб./за проект
04 июн. 2020, в 00:28
20000 руб./за проект
03 июн. 2020, в 23:41
75000 руб./за проект