Меню

Счетчик количества скачиваний файла

PHP \ MySQL счетчик скачиваний

Давно уже не было уроков про PHP и MySQL. Сегодня мы создадим простой, но эффективный счетчик скачиваний.

У каждого файла будет запись в ряду таблицы базы данных. В этой же таблице будет сохраняться количество скачиваний файла. PHP будет обновлять БД MySQL и перенаправлять пользователя на необходимый файл.

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

Шаг 1 — XHTML

Первым шаг — это создание разметки нашего скрипта. Она очень простая — у нас есть div file-manager, который содержит неупорядоченный список, в котором каждый элемент списка отвечает за файл.

Файлы, скачивания которых необходимо отследить, помещены в папку files в корневой папке скрипта. PHP потом проходит по всем файлам и добавляет каждый в качестве элемента списка ( li ) в неупорядоченный список.

Обратите внимание, что атрибут href ссылок передает название файла в качестве параметра для download.php. именно здесь и происходит отслеживание количества скачиваний.

Вам необязательно отображать все таким же образом — Вы просто можете давать ссылки на download.php на Ваших страницах и все скачивания не пройдут мимо.

Шаг 2 — CSS

После разметки давайте займемся оформлением. CSS правила ниже обращаются к div file-manager с помощью id ( символ #), так как он встречается только 1 раз на странице, и к остальным элементам по названиям классов.

Шаг 3 — PHP

Как я говорил раньше, PHP ищет файлы в папке files и выводит каждый файл в качестве элемента списка в неупорядоченном списке. Давайте взглянем на то, как это происходит

Обратите внимание как мы выбираем все ряды с таблицы download_manager с помощью mysql_query(), и позже добавляем их к массиву $file_downloads с названием файла в качестве ключа к количеству скачиваний. Таким образом, далее в коде, мы можем писать $file_downloads[‘archive.zip’] и выводить количество скачиваний.

Ниже Вы видите код, который генерирует элементы списка:

Все делается просто с помощью цикла foreach массива $files_array. После этого все выводится с помощью echo.

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

Важно проверить является ли Ваш посетитель человек или роботом поисковиков. Роботы это конечно хорошо, но не позволим им искажать нашу статистику. Именно поэтому ряд в базе данных обновляется только после проверки is_bot().

Шаг 4 — MySQL

Как мы заметили в прошлом шаге, количество скачиваний сохраняется в качестве ряда в таблице download_manager. Для начала давайте объясним как работает этот запрос:

Он говорит MySQL вставить новый ряд в таблицу download_manager, и установить поле ряда filename на значение вызванного к скачиванию файла. Однако, поле filename обозначенного как уникальный индекс в таблице. Это означает, что каждый ряд можно вставлять только раз, иначе возникнет ошибка duplicate key error.

Именно здесь и будет работать вторая часть запроса — ON DUPLICATE KEY UPDATE сообщит MySQL добавить единицу к колонке скачиваний, если файл уже существует в базе.

Таким образом новые файлы будут автоматически добавляться в БД при первом скачивании.

Шаг 5 — jQuery

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

Мы это сделаем с помощью jQuery:

Мы просто присваиваем обработчик кликов к ссылкам, который ведут к файлам, и при каждом нажатии мы добавляем значение.

Шаг 6 — htaccess

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

Вот теперь наш счетчик полностью готов!

Заключение

Для того, чтобы демо заработало у Вас необходимо воссоздать таблицу download_manager в базе данных MySQL. Вы можете найти необходимый SQL код в исходниках.

После этого, добавьте Ваши данные для соединения с БД в файле configuration.php.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.tutorialzine.com
Перевел: Максим Шкурупий
Урок создан: 4 Марта 2010
Просмотров: 52573
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Читайте также:  Стиральная машинка выбивает счетчик

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Источник

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

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

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

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

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

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

И наверняка, если у вас поставлен счётчик от какого то большого сервиса(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);

Источник

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

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

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

Сам счетчик — это 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 Вы можете сварганить простенькую страничку статистики для себя, чтобы каждый раз не лазить за информацией на сервер. Например, что-то типа этого >>>

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

Источник



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 то просто возвращаются данные о количестве закачек. Всё остальное я думаю понятно из комментариев в коде.

Источник