Если я правильно понимаю, вы хотите отфильтровать запросы от менеджеров закачек или ботов и записать только фактического пользователя в вашу базу данных. Есть несколько методов, которые я могу придумать для достижения этой цели:
Фильтровать пользовательский агент: каждый запрос должен отправлять заголовок пользовательского агента, который идентифицирует браузер или программное обеспечение, выполняющее запрос. Вы можете использовать этот метод для фильтрации ботов и менеджеров загрузки (если на самом деле они используют отдельный пользовательский агент). Вот пример сценария, который делает это .
Использовать cookie: что-то вроде этого вверху страницы, при условии, что менеджер загрузок делит состояние cookie с браузером:
if (!isset($_COOKIE['download_check'])) {
setcookie('download_check', '1', 0, '/');
} else {
exit();
}
Скрипт ничего не сделает после первого раза. Чтобы разрешить пользователю вернуться и повторно загрузить, просто уничтожьте cookie на любой другой странице.
Перенаправление с помощью JavaScript или мета-тегов: Предполагая, что загрузчик или бот не будут выполнять JavaScript, проверьте наличие какого-либо параметра в строке запроса. Если он не существует, выведите короткую страницу с перенаправлением JavaScript или мета-тега на ту же страницу с параметром и завершите работу, как показано ниже:
if (!isset($_GET['download_check'])) {
echo "<html><script>window.location = 'this_page.php?download_check=1'</script></html>";
exit();
}
Я надеюсь, что один или несколько из этих методов помогут вам отфильтровать неправильные запросы к вашему приложению.