@KamburI

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

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

function test(){

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

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

Войти через центр авторизации
Похожие вопросы
Лучшие люди Иваново
от 40 000 до 90 000 руб.
N1.RU Новосибирск
от 100 000 руб.
Living Core Казань
от 50 000 руб.
22 сент. 2019, в 12:35
600 руб./за проект
22 сент. 2019, в 12:15
12000 руб./за проект