Меню

Где есть счетчик скачивания

Как отследить загрузку файлов со своего сайта на WordPress

Возникла задача отслеживания загрузок файлов с сайта (изображений, документов, видео, дистрибутивов, …), т.к. обычные сервисы статистики не могут это делать без изменения URL файлов. И статистика должна быть видна в привычном месте (например, Google Analytics или FireBase).

Перебрав несколько плагинов (большинство имеют в названии слова Download и Manager), я обнаружил, что все они организованы по принципу ручного составления списка файлов для мониторинга. И во многих из них реализованы защиты от неавторизированного скачивания, что в данной задаче избыточно. Можно было бы воспользоваться ими, но если файлов много, то в итоге:

  • слишком неудобно и долго заводить элемент под каждый файл;
  • файлы могут менять свое расположение – опять придется исправлять элемент.

В итоге сделана своя реализация в виде плагина к WordPress, в котором просто указывается каталог (относительный путь сайта) и далее происходит мониторинг загрузок его содержимого.

Ссылка на бесплатный плагин тут для тех кому информации выше достаточно. Дальше приведены примеры результатов статистик и подробности технической реализации.

Куда отправляется статистика

Пока поддержаны два самых базовых места агрегации статистики.

Google Analytics

Статистика публикуется в виде сообщений (Events), у которых через настройки задается категория (Event Category), в действии (Event Action) указывается URI до файла и в метке сообщения (Event Label) указываются параметры запроса, если выставлена соответствующая настройка. В итоге можно удобно наблюдать динамику загрузок каждого файла в каталоге в консоли Google Analytics.

Таблица в базе данных WordPress

Служит в основном для отладки. Тут просто происходит подсчет количества скачиваний, временная динамика не видна. Поля таблицы: IP, URI файла, параметры запроса (если были) и счетчик. Данные можно увидеть любым редактором SQL (например, phpMyAdmin).

Каждой записи назначается ID для их удаления по отдельности при необходимости.

Перехват обращений к файлам

Загрузка файлов обрабатывается самим Web сервером Apache, поэтому сделан обработчик в .htaccess c перенаправлением в PHP скрипт.

Выглядит это так:

RewriteEngine On
RewriteCond % !\.(htaccess|php|js|css)$
RewriteCond % ^/mypath/(.*)
RewriteRule ^(.*) /index\.php\?seraph_dlstat_api=Get&uri=% [L,QSA]

Специально сделаны исключения для системных файлов с типами htaccess, php, js, css.

Для минимизации времени срабатывания, вызов скрипта реализован через параметр seraph_dlstat_api для index.php, который проверяется почти сразу после загрузки всех скриптов WordPress, необходимых для обработки. Сделано это на action-хуке do_parse_request – самом первом callback после загрузки всего рабочего окружения (выполнения wp-load.php).

Далее, скрипт обрабатывает\регистрирует URI и возвращает содержимое файла через системную функцию readfile. Также, поддержана частичная загрузка файлов через HTTP_RANGE, где файл уже читается блоками.

Отложенная отсылка данных

Для максимального уменьшения времени отклика поддержана асинхронная отправка статистики. При обращении к файлу создается запись в БД и файл сразу возвращается клиенту. А уже на срабатывании шедулера WordPress (WP Cron) данные берутся пачкой из таблицы и делается отсылка статистики.

Для Google Analytics это допустимо, т.к. она поддерживает асинхронный прием сообщений через указание времени задержки.

По умолчанию WP Cron срабатывает при любой загрузке страницы. Можно настроить WP Cron от системного шедулера для еще большей оптимизации времени отклика.

Заключение

В итоге для клиента загрузка файла ничем неотличима от стандартной обработки Web сервером и теперь есть возможность отслеживать это.

Источник

ГОТОВЫЕ РЕЦЕПТЫ САЙТОСТРОИТЕЛЯ.

Как установить на сайте счетчик
скачивания файлов.

Для чего это нужно? Это пригодится Вам в том случае, если Вы на своем сайте предлагаете скачать какой-то бесплатный контент (электронные книги, скрипты, программы) и хотите знать, сколько раз скачали тот или иной файл.

Сам счетчик — это php скрипт. Поэтому он будет работать только на хостинге с поддержкой php. Обычно это платный хостинг (на любом платном хостинге есть поддержка php). Бесплатные хостинги обычно php не поддерживают. Учитывайте это, когда будете использовать скрипт счетчика. Но и для владельцев сайтов на бесплатном хостинге в конце этой статьи я предложу некоторую альтернативу.

Читайте также:  Двухтарифный счетчик электроэнергии ночной тариф время

Итак, поехали. Сам скрипт счетчика закачек Вы можете скачать по ссылке ниже. Заодно посмотрите, как это выглядит:

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

Выводить показания счетчика на страницу сайта необязательно. Это может быть скрытый счетчик. И его показания будут доступны только администратору сайта.

В скаченном Вами архиве Вы найдете папку counter и 3 файла внутри нее:

counter.php — сам скрипт счетчика
book1.txt — в этом файле будут храниться показания счетчика по скачиваемому файлу 1
book2.txt — здесь будет информация по количеству закачек файла 2.

Сейчас скрипт настроен на подсчет закачек по двум файлам. Но я расскажу Вам, как перенастроить его на большее количество файлов, если это будет нужно.

Пока давайте разберемся с тем, что есть. Откройте файл counter.php с помощью текстового редактора БЛОКНОТ. Во второй и третьей строке кода Вам нужно указать свои настройки. Я дала комментарии прямо в коде файла счетчика. Вот эти строки кода (через знак // даны мои комментарии):

header(«location: http://site.lentay.net/less/counter.zip«);
$file=fopen(«book1.txt»,»a+»);

В первой строке Вам нужно указать ссылку на тот файл, который нужно скачать (вместо моего). То, что нужно изменить выделено жирным.

А в следующей строке указывается имя файла, в котором будет храниться статистика по количеству закачек. В данном случае это файл book1.txt. Тут ничего менять не нужно.

Далее в коде счетчика для второго файла точно также во 2-ой строке указываем путь ко второму файлу. А статистика по закачкам будет храниться в файле book2.txt

Дальше, если Вам нужно подключить счетчик для 3-его файла, то скопируйте код счетчика по второму файлу и вставьте его ниже, но до знака ?>. Вот так будет выглядеть код счетчика третьего файла:

// счетчик по третьему файлу

else if ($book==3) <
header(«location: http://www.сайт.ру/Zip/zip2.zip«);
$file=fopen(«book3.txt«,»a+»);
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
>

В первой строке меняем значение переменной. У нас это будет уже book==3. Во второй строке также указываем путь к третьему файлу. И в третьей строке указываем, что статистика по количеству закачек будет храниться в файле book3.txt При этом не забудьте создать этот самый файл book3.txt в папке counter.

С файлом counter.php все. Сохраняем изменения и закрываем файл. Дальше закачиваем папку counter вместе со всем ее содержимым на сервер в директорию вашего сайта. И устанавливаем атрибуты (права) на саму папку «сounter» и на текстовые файлы (txt) внутри нее. (см. «Что такое права доступа к файлам (chmode), зачем они нужны и как их установить»)

— Для текстовых файлов нужно установить права 666 (rw-rw-rw).
— Для самой папки «сounter», установите права 777.

Дальше будем работать с той страницей Вашего сайта, на которой у Вас дана ссылка на закачку файлов.

Код Вашей ссылки сейчас выглядит примерно так:

Чтобы подключить к этой ссылке наш счетчик мы делаем вот так:

Видите как изменилась ссылка? Теперь ссылка ведет к файлу счетчика counter.php. Но ведь в этом файле собраны счетчики сразу по двум или даже трем файлам. Чтобы дать указание на конкретный файл, в ссылке после знака «?» указана переменная, соответствующая этому файлу — book=1.

Код ссылки на закачку файла 2, соответственно, будет выглядеть вот так:

А файла 3 вот так:

Читайте также:  Письмо для замены счетчиков

http://site.lentay.net/counter/counter.php?book=3«>
Скачать файл 3

Вот и все. Загружайте измененную страницу Вашего сайта на сервер и проверяйте, как это работает. Кликаем по ссылке на скачивание файла 1. Файл должен успешно скачаться. И если теперь Вы зайдете на сервер в директорию counter и откроете для просмотра файл book1.txt, то там будет стоять значение 1. Что означает, что Ваш файл 1 был скачен один раз. (Только что Вы это сами сделали).

По аналогии Вы сможете увидеть статистику закачек по файлу 2 в файле book2.txt

Иногда на некоторых серверах возникают проблемы с работой этого счетчика. При обращении по ссылке http://сайт.ру/папка/counter.php?book=1 закачка не происходит, а просто выдается белый экран.

В этом случае в коде счетчика строчку
i f ($book==1) <

замените на
if ($_GET[‘book’]==1) <

Сейчас у нас с Вами получился скрытый вариант счетчика закачек. Статистика по количеству скачиваний доступна только Вам, как администратору сайта.

Если Вы хотите вывести показания счетчика на страницу Вашего сайта, чтобы все посетители могли видеть, сколько раз уже был скачен тот или иной файл, то нужно еще кое-что сделать с вашей страницей сайта, где даны ссылка на скачивание интересующего нас файла.

Показания счетчика выводят на страницу с помощью команды

Те, кто работал по моему курсу «Что нам стоит сайт построить», с этой командой знакомы. Эта команда в php означает, что в заданное место сайта (туда, где стоит эта команда) будет подгружено содержимое файла book1.txt из папки counter.

То есть, если мы хотим вывести на страницу сайта показания счетчика закачки данного файла, то в html — коде это будет выглядеть так:

ВАЖНО! При этом Вашу страницу сайта, на которую Вы выводите показания счетчика, необходимо из формата html перевести в формат php. Иначе команда работать не будет.

Это можно сделать простым переименованием. Допустим, если у Вас файл данной страницы сайта назывался page.html, то переименуйте его в page.php.

ВАЖНО! Когда Вы переименуете файл Вашей страницы, не забудьте, что на эту страницу на Вашем сайте могут вести ссылки с других страниц. И в результате изменения имени файла, эти ссылки перестанут работать. Поэтому, когда Вы переименуете файл страницы, скорректируйте также те ссылки с других страниц Вашего сайта, которые ведут на эту страницу.

ВСЕ! Закачивайте обновленный файл Вашей страницы сайта на сервер. И проверяйте результат. Если Вы все сделали правильно, то возле ссылки на ваш файл Вы увидите:

Количество скачиваний: 1

Кстати, этот счетчик количества скачиваний Вы можете легко использовать для получения информации о количестве посещений определенных страниц Вашего сайта, либо количества кликов по определенным ссылкам. Для этого достаточно в коде файла counter.php указать вместо ссылки на архив ссылку на интересующую Вас страницу. А на Вашем сайте ссылка на эту страницу настраивается также, как и ссылка на закачку файла. Думаю тут уже у Вас проблем быть не должно.

А с помощью команды include Вы можете сварганить простенькую страничку статистики для себя, чтобы каждый раз не лазить за информацией на сервер. Например, что-то типа этого >>>

Владельцам сайтов на бесплатном хостингее я предлагаю альтернативный вариант установки счетчика закачек.

Источник



Сколько скачиваний на сайте пример

Поддержи проект.

Начнем с того, что количество скачиваний файла можно узнать несколькими способами! Для того, чтобы узнать, сколько раз скачали файл не обязательно писать скрипт, для этого есть сервисы, которые вполне могут посчитать количество скачиваний файла! Но и мы не были бы сайтом с темами о php, чтобы не написать скрипт , который смог тоже посчитать сколько раз скачали наш архив!

Сервисы которые могут предоставлять статистку о том, сколько раз скачали ваш файл!

И наверняка есть такие файлохранилища, которые предоставляют информацию об этом!

Читайте также:  Электросчетчик меркурий 200 мигает дисплей

Но! Мы даже не будем пытаться тестировать всю эту байду! Потому, что у нас есть счетчик от Яндекс метрики который уже установлен у нас на сайте.

И наверняка, если у вас поставлен счётчик от какого то большого сервиса(Mail, Google, LiveInternet(это, что вспомнилось на вскидку…)), то наверняка там есть такая информация тоже.

Как узнать сколько раз скачали файл через Яндекс метрику!?

Нам ничего не нужно дополнительно устанавливать — т.е. вообще больше ничего не нужно делать.

Идем в Яндекс метрику:

Нам нужно зайти в счетчик — «стандартные отчеты» — «содержание» — «загрузка файлов»

В новом окне выставляем период за который хотим посмотреть статистику скачиваний нашего файла – здесь поставлено — месяц! Мы видим диаграмму, которая показывает количество скачиваний за месяц по дням.

Но нам нужно узнать какие файлы были скачаны и сколько раз и нам нужно опуститься чуть ниже диаграммы и видим. собственно наши файлы, которые лежат по разным папка и даже есть статистика открывания файлов txt — метрика считает сколько раз открыли данный файл!

Скрипт подсчета скачиваний файла php логика + простой пример

В самом начале мы должны разобраться в логике скрипта подсчета , сколько раз скачали файл, схематично!

У нас должно быть два скрипта, на разных страницах!

Ссылка с get запросом на скачивание файла

файл скачали раза.

Файл со скриптом, который будет считать скачивание

https://dwweb.ru/__a-data/__all_for_scripts/__rar/skachat_schetchik.rar ‘; //Это файл, который нужно скачать

$chislo = @file_get_contents(__DIR__.’/1.txt’) + 1;

@file_put_contents(__DIR__.’/1.txt’, $chislo, LOCK_EX);

Источник

Cчетчик скачиваний для сайта

Решил посмотреть сколько раз скачивают один из моих скриптов с сайта. Для этого решил написать счётчик скачиваний файлов для сайта. В интернете много реализаций данной задачи, но тем неменее ознакомтесь с моим решением.

Логика работы счётчика скачивания довольна проста. Для его реализации будем использовать мой любимый ajax. Вешаем на кнопку при возникновении событи clik обращение через ajax к php файлу счётчика. В php происходит обработка ajax запроса и запись в текстовый файл цифры суммарного количества скачек. После удачной записи возвращается ответ с суммарным счётчиком скачиваний и происходит редирект пользователя на ссылку для скачки файла (файл скачивается). Вот такая вот простая логика Теперь начнём её реализовать. Заранее создадим скачиваемый файл test.zip . Сделаем код кнопки и покажем счётчик скачек.

Мы создали кнопку с id=»btnSend» , выводить счётчик будем в span с id=»countView» , в атрибуте data-download будем хранить ссылку на скачиваемый файл

Теперь давайте прикрутим к кнопке обработчик клика. Здесь уже будем использовать js и jquery. Про то как реализовать clik силами jquery можно почитать здесь. Но перед установкой обработчика клика мы будем ajax обращаться к файлу count.php, в котором будет заключена вся работа счётчика. Подробнее о передаче данных ajax можно почитать здесь. Это нужно что бы вывести из файла куда пишет счётчик, количество уже сделанных закачек и вывести их в span с id=»countView»

Для предотвращения повторного ошибочного нажатия кнопки отправки я ввёл в скрипт флаг clickevent . Пока не вернётся ответ от count.php с обновившимися данными счётчика клик по кнопке будет запрещён. Я так думаю работа кода после клика по кнопке более менее ясна. После клика по кнопке скачать в файл count.php передаются данные, там они обрабатываются и возвращается обновлённые данные счётчика, происходит редирект на ссылку скачивания и соответственно сама закачка файла.

Давайте теперь разберём сердце нашего скрипта, а именно файл count.php.

Здесь я то же думаю всё просто. Если приходит флаг 1 то делаем перезапись счётчика. Если приходит флаг 2 то просто возвращаются данные о количестве закачек. Всё остальное я думаю понятно из комментариев в коде.

Источник