ФорумПрограммированиеPHP для идиотов → Подсчет скачек файлов

Подсчет скачек файлов

  • AnonimUser

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 7 января 2008 г. 1:54

    Добрый день! Всех с Рождеством Христовым!

    Можно ли както подсчитать количество скачек файлов по прямой ссылке на файл?

    То есть юзер вводит h_tp://site.com/files/123.mp3 и увеличивается счетчик скачки.
    Такое реально сделать?
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 7 января 2008 г. 2:03, спустя 9 минут 32 секунды

    1. Перехватывать все обращения к каталогу /files/ на php-сценарий и им уже выдавать файл.
    2. Анализировать логи апача.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 7 января 2008 г. 2:04, спустя 58 секунд

    да, тока на самом деле это не будет прямой ссылкой, а будет диктоваться как допустим: h_tp://site.com/count.php?f=/files/123.mp3
    через мод реврайт
    adw/0
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 7 января 2008 г. 2:18, спустя 13 минут 33 секунды

    mod_rewrite в помощь

    в .htaccess пишешь что-то типа:
    RewriteEngine on
    RewriteBase /
    RewriteRule ^files/([0-9]+)\.mp3$ script.php?file_id=$1


    т.о. все запросы типа h_tp://site.com/files/123.mp3 перенаправляются к некоему сценарию script.php, с указанием в $_GET['file_id'] номера файла. Там: проверяешь - есть ли такой файл; наращиваешь счётчик скачиваний данного файла; посылаешь заголовок header('Content-type: audio/mpeg'); и делаешь readfile("xxx/xxx/xxx/xxx/123.mp3");

    Вот ещё почитай про докачку файлов
  • AnonimUser

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 8 января 2008 г. 8:45, спустя 1 день 6 часов 27 минут

    Спасибо всем за ответы!!!

    Но еще вопрос.
    А от применения в данном случае функции readfile() сервак не загнется? А то файлы бывают и большие.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 января 2008 г. 8:58, спустя 12 минут 24 секунды

    тогда используй "Location"

    h_tp://site.com/files/123.mp3

    …mod_rewrite…

    $count++;
    header("Location: h_tp://site.com/realFilesDir/123.mp3");
    adw/0
  • AnonimUser

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 8 января 2008 г. 9:18, спустя 20 минут 38 секунд


    тогда используй "Location"

    h_tp://site.com/files/123.mp3

    …mod_rewrite…

    $count++;
    header("Location: h_tp://site.com/realFilesDir/123.mp3");

    В этом случае будет бесконечный цикл
    RewriteRule перебрасывает на скрипт, а скрипт обратно в папку и так бесконечно.


    А какой антилич посоветуете? А то я их не юзал раньше никогда.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 января 2008 г. 11:06, спустя 1 час 47 минут 53 секунды

    В этом случае будет бесконечный цикл
    RewriteRule перебрасывает на скрипт, а скрипт обратно в папку и так бесконечно.


    Вы не правы, почитайте документацию
    adw/0
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 8 января 2008 г. 11:17, спустя 10 минут 49 секунд

    А от применения в данном случае функции readfile() сервак не загнется? А то файлы бывают и большие.

    не загнётся. Грубо говоря, какая разница? Чтобы послать файл пользователю, сервер всё равно должен его прочитать.

    Вот, кстати, по поводу имени файла, мож пригодится.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!