Мне нужно, чтобы мой ограничитель скорости сработал после того, как более 1000 запросов были отправлены в мою базу данных в течение 24 часов, однако это не работает. Я не знаю PHP достаточно хорошо, чтобы понять, что я сделал неправильно, может кто-нибудь мне помочь?
Это для API, над которым я работаю, и я знаю, как реализовать ограничитель скорости для предотвращения атак ботов. Я пытался увидеть, если это мой сеанс или нет, но я не могу понять, что не так.
это внутри класса php sessionControl
public function Rate24HourCheck() {
$this->last_request = Array();
array_push($this->last_request, time());
$count = 0;
foreach($this->last_request as $item) {
$this->curr_request = time();
$count ++;
if($this->new_request > ($this->curr_request - 86400) && $count > 1000) {
throw new Exception("24 hr rate limit exceeded.");
die();
}
}
if($this->new_request < ($this->curr_request - 86400)) {
unset($this->last_request);
}
$this->last_request = time();
}
Всякий раз, когда я пытаюсь вызвать ограничитель скорости, меняя его с 1000 на 5 или 10, я не получаю никакого ответа / ошибки, говорящего о превышении моего ограничителя скорости.