Лічильник завантажень файлу на php & mysql

Лічильник завантажень файлу на php & amp; mysql
У цій статті ми дізнаємося, як написати лічильник скачування файлу самому. Ми напишемо простий, в той же час красивий і зручний лічильник на PHP і MySQL. Для краси будемо використовувати jQuery. Але базовий скрипт лічильника завантажень файлу написаний на PHP, з використанням БД MySQL. Кожен файл буде мати окремий рядок записи в БД, де буде зберігатися загальна кількість завантажень файлу. PHP скрипт, буде оновлювати дані в MySQL, і перенаправляти користувачів на відповідний файл. Для підрахунку кількості скачування файлу, вам необхідно завантажити файл в спеціальну папку, і використовувати спеціальний URL для доступу до нього.

КРОК 1 - XHTML

Першим кроком буде створити XHTML розмітку списку файлів з лічильниками. Тут все просто - у нас є файл менеджер (div), який містить невпорядкований лист (ul), в якому кожен файл це li елемент.

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

Зауважте, що href атрибут посилання - передає ім'я файлу як параметр до файлу download.php. Тут ми і будемо вважати кількість скачок файлу. Скоро ви це побачите.

Не обмежуйтеся цим інтерфейсом при створенні трекера файлів. Дизайн може бути будь-який, вам головне передати параметр до файлу download.php. Ви можете просто вставити посилання, з таким же href атрибутом, і все кількість завантажень буде зберігатися в БД так само саме.

Лічильник завантажень файлу на php & amp; mysql

КРОК 2 - CSS

Що б на скрипт лічильника було приємно дивитися, додамо трохи CSS. Звичайно ж ви можете змінювати все на свій смак.

Лічильник завантажень файлу на php & amp; mysql

КРОК 3 - PHP

Трохи раніше, ми говорили про те, що PHP буде проходити через папку files. і виводити кожен файл як li елементт. Тепер давайте подивимося як це працює.

demo.php - Верхня частина коду

Зауважте, як ми вибираємо всі записи з таблиці download_manager. за допомогою mysql_query (). Після чого, ми додаємо їх в масив $ file_downloads. в якому ім'я файлу це ключ, а кількість скачок це значення. Далі ми можемо отримати доступ до числа скачок за допомогою рядка - $ file_downloads [ 'archive.zip'].

Тепер розглянемо код, який ми будемо використовувати для генерації li елементів.

Тут все просто, ми використовуємо цикл foreach для проходження по масиву $ files_array. і виводимо його вміст на екран.

Розглянемо, як влаштований файл підрахунку скачок файлів.

У цьому коді, ми будемо відстежувати пошукових роботів, який також можуть сканувати посилання. У разі відвідування посилання роботом, ми не будемо оновлювати запис в базі даних. Це потрібно для точної статистики, ми будемо знати кількість завантажень тільки реальних відвідувачів. Для цього потрібно включити максимальну кількість імен роботів в масив $ botlist.

КРОК 4 - MySQL

У попередніх кроках, ми говорили, що всі дані будуть зберігатися в БД, в таблиці download_manager. Тепер, подивимося, за допомогою якого запиту ми будемо оновлювати дані:

Цей код змушує MySQL вставити новий рядок в таблицю download_manager. і змінити значення поля filename на ім'я файлу. У разі повтору імені файлу ми просто оновимо значення поля downloads на +1. Тому все нові файли будуть додаватися автоматично в базу даних, якщо їх завантажать.

Нижче, надана структура таблиці download_manager:

Лічильник завантажень файлу на php & amp; mysql

КРОК 5 - jQuery

Для того, щоб лічильник скачування файлів працював в режимі реального часу, буде добре, якщо ми відновимо цифру кількості завантажень в той час, коли користувач натиснув на посилання скачування. Цифра оновитися до того, як перезавантажитися сторінка. Це створить ефект роботи скрипта в режимі реального часу.

Ми зробимо це за допомогою маленького шматочка коду jQuery:

Ми встановили обробник подій натискання на посилання. При кожному натисканні, ми просто додаємо +1 до значення в span тезі.

КРОК 6 - htaccess

На цьому, написання лічильника скачування файлів закінчено!

висновок

Схожі статті