Loading...
Обучение/Помощь новичкам | Ограничение для юзера
Всем привет.
У меня есть поиск и хочется ограничить количество запросов для пользователей, которые заходят на сайт. Как ограничить количество запросов, например, с одного ip до 10 запросов в день?
Как вариант при каждом поиске сохранять ip и дату в лог. Потом при поиске проверять ip пользователя и дату с логом.
RezzidenT , нагрузка не будет большая или это не так уж и затратно?
Tyler , если у тебя пользователи зарегистрированы, то можно в таблице user сделать столбик countsearch и плюсовать значения каждый раз при поиске
Пример


ограничить количество запросов с одного IP-адреса, используя функцию PHP gethostbyaddr(). Это вернет IP-адрес пользователя, и вы сможете сохранить его в базе данных или файле с отметкой времени. Затем, когда запрос сделан, вы можете проверить, сделал ли этот IP уже 10 запросов сегодня. Если это так, запретите им доступ.

Вот пример того, как это сделать:

// Получить IP-адрес пользователя
$ip = gethostbyaddr($_SERVER['REMOTE_ADDR']);

// Проверяем, сделали ли они сегодня уже 10 запросов
$requestsToday = 0; // Установить начальное значение в 0

// Подключиться к базе данных или открыть файл со списком запросов

// Прокручиваем записи и подсчитываем количество запросов с этого IP за сегодня

foreach ($ записывает как $ запись) {
if (strtotime($record['timestamp']) > strtotime('today') && $record['ip'] == $ip) {
$requestsToday++;
}
}

// Отказать в доступе, если сегодня с этого IP было сделано более 10 запросов

if ($requestsToday > 10) { echo 'Доступ запрещен'; exit; }
Не проще просто после первого запроса к сайту навсегда закрывать доступ к своему ресурсу? Вы ведь хотите, чтобы юзер больше не заходил на сайт?
Feorayler , не умничай)
Feorayler , спасибо)
А ещё лучше вариант, чтобы это хранил браузер , а не сервер)
mir007 , было бы вообще прекрасно)
Онлайн: 2
Время:
Gen. 0.1279
(c) Bym.Guru 2010-2025