Как отследить доступ к определенным файлам на хостинге.

php htaccess отслеживание

Например хочу знать сколько пользователей скачали файл, с определенным расширением (к примеру .xxx).
Т.е. после каждой скачки файла должен выполниться определенный скрипт, который добавит в базу время и ip скачавшего, а дальше дело техники, но как заставить запускаться этот скрипт (php).
Анализ аccess.log не предлагать ибо длинный лог сильно, неудобно.

По идее должна работать конструкция .htaccess

Action mylib "mylib.php?"
AddHandler mylib .xxx

где mylib.php функция, которая добавляет запись в базу о скачке, но у меня почему-то не получается. Помогите.

Доступа к настройке сервера нет, обычный хостинг.

Примечание:
Doctor013, спасибо , немного сдвинул с мертвой точки, но все равно не понимаю, почему скрипт не выполняется.

<?
$f = fopen('test.txt','w');
fwrite($f,'test');
fclose($f);

$file = ("file.zip");
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);
?>

Содержимое file.zip выводиться, но test.txt создавать не хочет, как и любые другие команды, которые просто игнорируются.

Примечание:
Запрос будет делать не браузер, а некая софтина, в которой жестко зашито скачивать с сервера определенный файл.
Ответы:
Вместо прямой ссылки на файл передаете управление скрипту, который принимает  в качестве входного параметра имя необходимого файла,  совершает все необходимые действия и в конце отдает файл пользователю через конструкцию Header.
$file = ("file.zip");
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);  
readfile($file);
Конструкция с Action mylib "mylib.php?" выглядит весьма подозрительной, во всяком случае - знак вопроса в ней.
В любом случае, просто записью в базу mylib.php не отделается - придется что-то делать с самим файлом. отдавать так, как написано выше. Это решение страндартное, но черезвычайно ресурсоемкое. Для небольшого количества небольших файлов подойдет.
PHP ничего никогда не игнорирует.
Все синтаксически верные команды всегда выполняются. Если при выполнении возникает ошибка, то РНР о ней сообщает.
А вот горе-программист обычно сообщения об ошибках как раз игнорирует.
Какая разница, кто будет делать запрос.
Во-первых, с точки зрения сервера клиенты все на одно лицо.
Во-вторых, клиент здесь вообще нигде не упоминался.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.