Подсчёт скачиваний

  • Автор темы TheBest
  • Дата начала

TheBest

Guest
Подсчёт скачиваний

Привет всем!
Такая задачка - нужно подсчитать количество скачиваний файла.
Сделал её с помощью onClick и фреймов, но что-то мне такая конструкция не нравится, уж больно заумно получилось. А проще ничего придумать не получается. Кто-нибудь знает более просто решение?
 

fixxxer

К.О.
Партнер клуба
отдавать файл скриптом

если еще вопросы-в поиск
 

TheBest

Guest
тему Счётчик скачиваний я видел. Такое решение не подходит. Да и не уверен, что оно даёт 100% эффект и безопасно.

-~{}~ 08.03.04 21:06:

Да. похоже, никто не знает. Жаль...
 

2People

Guest
Ссылка на файл file.zip имеет такой вид:
<a href="download.php?url=file.zip">file.zip</a>

В файле download.php берёшь $url и делаешь что тебе надо. (прибавляешь 1 к счетчику для файла file.zip)

а потом header("Location: $url");
 

netklon

Новичок
Даешь ссылку вида <a href="/download/file.zip>###</a>".
В папку /download кладешь .htaccess, который редиректит любую ссылку из данного каталога на скриптик скажем index.php

Ну а этот скриптик ищет file.zip в директории с твоими файлами. Находит - определяет тип миме и отдает вместе с соотвествующим заголовком. Не находит - выдает 404 ошибку.
 

2People

Guest
netklon
Зачем такие мучения с определением MIME? Да ещё и находит....определяет.....выдаёт.... это не скрипт, а Ш. Хомс и Д. Ватсон на php?
 

Crazy

Developer
Затем, bettrrr, чтобы браузер правильно отработал скачиваемый файл.
 

Crazy

Developer
Если $url отсылает нас к файлу, то тем, что:

1. Файл должен быть открыт для непосредственного доступа извне.
2. Как следствие, часть людей будут качать его по этому прямому URL в обход счетчика.
 

2People

Guest
Как это в обход?
index.html:
<a href="download.php?url=file.zip">file.zip</a>

download.php:
PHP:
$result = mysql_query("UPDATE download SET count=($count+1) WHERE url=$url");
header("Location: $url");
В любом случае счётчик прибавится.
 

Crazy

Developer
Простой вопрос номер раз: приведи пример значения переменной $url.
 

2People

Guest
А зачем? Мы говорим о практике, а не о надуманных действиях пользователя. Гораздо проще счётчик сделать через header, а не выдумывать себе сложностей.
 

2People

Guest
Но если необходимо особой точности и просчитать все варианты, то можно поредавать id файла, а потом брать его URL из базы. Т.к. файлов можеть быть очень много, и придётся делать вложенные папки вида /a/a/aafile.zip, /b/f/bfile.zip, а во все папки .htaccess`ов не накидаешь, особенно если они создаются скриптом.

-~{}~ 09.03.04 00:58:

Просто незачем из счётчика скачиваний делать скрипт на 1Mb.

-~{}~ 09.03.04 01:03:

Лучше сделать скрипт из 5 строк и пропустить одно скачивания пользователя Crazy, который хочет перейти не на download.php?url=file.zip, а на file.zip, чем городить громадные скрипты.
 

netklon

Новичок
кладешь .htaccess снова в /
твой скрипт обрабатывает REQUEST_URI и ищет твой файл в папке с файлами. Методов обработки - от mod_rewrite до FileMatch

-~{}~ 09.03.04 01:06:

Лучше сделать скрипт из 5 строк и пропустить одно скачивания пользователя Crazy, который хочет перейти не на download.php?url=file.zip, а на file.zip, чем городить громадные скрипты.
лучше сделать изначально универсальное и безопасное решение, чем потом голову ломать.
 

2People

Guest
Не надо приувеличивать. Это не всегда хорошо. Надо адекватно оценивать значимость скрипта и кпд вложенной в него работы.
Незачем встраивать в унитаз выдувающий вентилятор, это мало кому пригодится.
 
Сверху