![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
вот скрипт через который скачивается файл. я хочу сделать подсчет скачек. Проблема в том что качальщики типа reget делают несколько потоков и получается код выполняется несколько раз... т.е. счетчик вставить не получится, так как он будет показывать количество потоков при закачке... Как сделать правильный счетчик ? (т.е. имено количество скачек, а не потоков) |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
admsasha, можешь сделать так: есть ссылка скачать, при нажатии вызывается счетчик и отображается страница с ссылкой на реальную скачку файла, после чего вызывается скрипт передачи файла. То есть делаешь на раз-два-три.
Это первое, что пришло в голову... Это сообщение отредактировал(а) sharq - 28.6.2005, 22:07 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
Это равносильно счетчику просмотров ссылки... но не загрузки ее... |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Каждому файлу присваивай уникальный Id, после чего создай программу, которая будет по этому Id находить имя файла и собственно возвращать его, она же будет и подсчитывать кол во скачиваний. Для этого достаточно одного DBM файла, где Id - это ключь, а имя файла значение, можно в нём же и считать или создать второй DBM для подсчёта.
Допустим эта программа будет называться counter.pl. Теперь там, где ты указываешь ссылку на файл, просто прописывай такой путь: /cgi-bin/counter.pl?id=74515452697236327 Это сообщение отредактировал(а) korob2001 - 29.6.2005, 03:31 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
так то она и работает... проблема как раз в том что, многосессионные закачки, этот URL запрашивают много раз... т.е. встроенный счетчик будет показывать количестно сессий, а не закачек. При односессионной закачки всё будет верно. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Т.е. ты хочешь убедиться в том, что юзер дождался полной загрузки файла??? Или я что-то не понял.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
вообщем то верно....
т.е. мне не обязательно что бы он докачал.... я хочу ограничить скачку файла по количеству раз... для этого и нужен счетчик. причем, с одного компа могут качать не только один раз... т.е. скачал, второй раз можно скачать, счетчик покажет "скачено 2 раза". P.S. на icq не отвечаешь или нельзя, быстрее было бы... хоть смогу объяснить сразу что и как... |
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
1) Считывай IP-адрес - он то должен оставаться одним и тем же для нескольких потоков, потом удалишь повторяющиеся в течении заданного интервала времени... 2) Можно с плюшками поработать. В плюшке достаточно хранить количество закачек. При кажной новой закачке обновлять плюшку. Если разница между временем последней и предпоследней модификациями плюшки превышает заданное, увеличить количество закачек на единицу. P.s. Правда с плюшками я не работал, но кажется должно пойти. Единственное, их можно просто удалить с компа и начать качать поновой... --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
так а если мне надо два раза скачать одно и тоже ? например через 4 часа после первого. Учет по времени не поставить, так как, кто-то три часа качать будет , а кто-то 30 минут.... |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
admsasha
Создавай в базе данных таблицу и обновляй поле счётчика при каждом обращении к программе, которая будет посредником между файлом и ссылкой. Вот собственно и всё. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| admsasha |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
скачиваю файл через reget, в файле вот что..
т.е. у меня reget запустил 4 сессии... т.е. счетчик будет "4". а надо что бы "1" было.... |
||||
|
|||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: нет Всего: 6 |
придумал решение
if(exists($ENV{'HTTP_RANGE'})){ // не считать }else{ /// считать } думаю понятно. теперь правильно всё считает... именно сколько закачек, даже при много поточной закачки |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |