Как ограничить скорость подачи формы для каждого пользователя

Я пытаюсь ограничить скорость подачи form's до одного на пользователя за 120 секунд.

Я думал об использовании переменной $_SESSION , но я не уверен, как это будет работать, и файлы cookie можно просто удалить. Я предполагаю, что переменная $_SESSION может быть обработана интуитивно понятным пользователем, просто logging out и вернувшись обратно.

В настоящий момент я просто теоретизирую, поэтому у меня нет кода.

Как мне обойти мои проблемы?

РЕДАКТИРОВАТЬ —

Причина, по которой пользователь будет запрашивать так часто, заключается в том, что он является базой данных элемента и базы данных. Мне нужно замедлить пользовательские запросы до приемлемой скорости, потому что переходите на 10 запросов / минуту, иначе приложение может быть «запрещено» или запрещено в течение часа.

Solutions Collecting From Web of "Как ограничить скорость подачи формы для каждого пользователя"

Переменные $_SESSION и $_COOKIE могут быть удалены пользователем, и поэтому их злоупотребляют. Вам нужно хранить отправления где-то на своем сервере. Возможно, с MySQL. Затем выполните проверку перед обработкой формы.

Что-то вроде

 SELECT COUNT(*) attempts, MAX(submit_time) last FROM form_submits WHERE user_id = ? AND submit_time > NOW - INTERVAL 2 MINUTE 

затем

 if ($row['attempts'] > 0) { echo "You must wait " . (time() - strtotime($row['last'])) . " seconds before you can submit this form again."; return; }