Регистрация
DANFA Сближает людей!

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

Данный скрипт нашёл в сети. Я все го лишь расскажу как он работает. Сам счетчик - это PHP скрипт. Поэтому он будет работать только на хостинге с поддержкой PHP.
Для создания счётчика создаём файл: counter.php, с содержимым:
<?php
if ($_GET['book'] == 1)
{
    header('location: http://danfa.net/file.zip');
    $file = fopen('counter/book1.txt', 'a+');
    flock($file, LOCK_EX); 
    $count = fread($file, 100);
    $count++; 
    ftruncate($file, 0); 
    fwrite($file, $count); 
    flock($file, LOCK_UN); 
    fclose($file); 
}
?>

Где третья строчка
header('location: http://danfa.net/file.zip');

указывает путь к файлу, который нужно скачать, четвёртая строчка
$file = fopen('book1.txt', 'a+'); 

указывает полный адрес относительно файлу counter.php файла в котором будет храниться статистика скаченного файла, в данном случаи это: book1.txt

Файл counter.php помещаем в корень сайта, файл: book1.txt (пустой) поместим в папку counter. В php документе пишем ссылку такого вида:
<a href="http://danfa.net/counter.php?book=1">Скачать архив</a>

При нажатии на эту ссылку зачтётся клик, в файле book1.txt на одну единицу статистике станет больше, скрипт выполнит запрос файла и начнётся скачивание файла на компьютер пользователя.
Для отображения статистики закачек, в тот же документ вставляем вот этот код:
<? include('counter/book1.txt');?>

Для более актуального вида, статистику можно вставить рядом с ссылкой загрузки, в духе:
Название: <b>PHP скрипт счётчика скачиваний</b><br />
Размер файла: 12.06 kb<br />
Скачали: <? include('counter/book1.txt');?> раз<br />
<a href="http://danfa.net/counter.php?book=1">Скачать архив</a>

Увеличиваем количество файлов для скачивания:
В файл: counter.php дописываем:
if ($_GET['book'] == 2) 
{
    header('location: http://danfa.net/file_2.zip');
    $file = fopen('counter/book2.txt', 'a+');
    flock($file, LOCK_EX); 
    $count = fread($file, 100);
    $count++; 
    ftruncate($file, 0); 
    fwrite($file, $count); 
    flock($file, LOCK_UN); 
    fclose($file); 
} 

Должно получиться так:
<?php
if ($_GET['book'] == 1) 
{
    header('location: http://danfa.net/file.zip');
    $file = fopen('counter/book1.txt', 'a+');
    flock($file, LOCK_EX); 
    $count = fread($file, 100);
    $count++; 
    ftruncate($file, 0); 
    fwrite($file, $count); 
    flock($file, LOCK_UN); 
    fclose($file); 
}

if ($_GET['book'] == 2) 
{
    header('location: http://danfa.net/file_2.zip');
    $file = fopen('counter/book2.txt', 'a+');
    flock($file, LOCK_EX); 
    $count = fread($file, 100);
    $count++; 
    ftruncate($file, 0); 
    fwrite($file, $count); 
    flock($file, LOCK_UN); 
    fclose($file); 
}
?>

В папку counter заливаем файлик book2.txt (пустой), добавляем ссылку:
<a href="http://danfa.net/counter.php?book=2">Скачать архив</a>

и выводим статистику:
<?php include('counter/book2.txt');?>

То есть делаем всё то же самое, только меняем цифру один (1) на два (2). Таким же образом добавляем третий файл, четвёртый, пятый, и т.д.
Работа на DANFA: Фриланс.

Часовой пояс: GMT +6. Текущее время 12:31 am.