Ограничение скорости отправки формы по IP-адресу и интервалу времени - PullRequest
2 голосов
/ 19 октября 2011

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

select count(*) from mysql_table where uid='$uid' and timestamp > (DATE_ADD(now(), INTERVAL -1 HOUR););

Кажется, что это будет работать, но я понятия не имею, как,Сначала я хотел бы заменить uid на IP:

select count(*) from mysql_table where ip='$ip' and timestamp > (DATE_ADD(now(), INTERVAL -1 HOUR);); 

Но после этого я не совсем уверен, как отметка времени> (DATE_ADD (now (), INTERVAL - 1 HOUR););на самом деле работает.Я отправляю метку времени с каждым сообщением, но я не знаю, как на самом деле работает остальное, кто-то может мне это объяснить?

1 Ответ

1 голос
/ 19 октября 2011

Ваш запрос подсчитывает, сколько записей присутствует в "mysql_table"

select count(*) from mysql_table

и ограничить это количество записями, имеющими ip = user_ip

where ip='$ip'

и отметка времени (столбец даты / времени, в котором хранится время записи) больше, чем время, представляющее «один час назад»

timestamp > (DATE_ADD(now(), INTERVAL -1 HOUR)

(помните, что каждый раз, когда вы вставляете запись, вы, вероятно, устанавливаете в поле отметки времени текущую дату / время). Вам нужно сравнить этот результат с максимально допустимым и решить, хорошо это или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...