Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "пошарпану";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

Вниз

питання не в тему Знайти схожі гілки


-=CrazyFish=-   (2001-11-09 16:28) [0]

Народ, хочу на своїй сторінці поставити лічильники завантажень файлів. Чи не підкинете чи яку ні будь доку як це робити?
Заздалегідь вдячний.



Oleg Gashev   (2001-11-09 16:46) [1]

У Spylog є.



anod   (2001-11-09 17:16) [2]

Простейщій на Перл

#! D: / web / perl / bin / perl -w

use strict;
use CGI;

my $ q = CGI-> new;
my% counter;

print $ q-> header (-charset => "cp-1251");
dbmopen (% counter, "counter", 0666);
$ Counter { "Total"} = 0 if! $ Counter { "Total"};
print ++ $ counter { "Total"};
dbmclose (% counter);

А визиват його так:
Відвідувань: <! - # include virtual = "/ cgi-bin / counter.pl" ->



Donal   (2001-11-09 17:50) [3]

але ж мова про лічильниках завантажень, а не показів сторінок
і робиться це і правда або на Перл, або на PHP, або на будь-якому іншому мовою серверних скриптів ...
суть в тому, що замість посилання на файл дається посилання на скрипт з параметром, який однозначно ідентифікує файл..а скрипт збільшує лічильник і видає клієнтові сам файл ...
спробую написати на PHP, тому що самому цікаво :-)). якщо що вийде, дам знати :-)



Donal   (2001-11-09 18:35) [4]

ось і результат :-) отже - лічильник завантажень (тільки облік) на PHP:

в будь-якому місці сайту пишемо файл каталогу, де вказуються імена файлів, які можна завантажити і через роздільник число їх завантажень. Роздільник може бути будь-яким, головне, щоб він не міг бути використаний в шляхах до файлу.
приклад такого файлу (тут роздільником є ​​пробіл):
cat1 / subcat1 / file1.zip 0
cat2 / subcat2 / file2.zip 0

<? $ Delimeter = ""; // задаємо роздільник $ Catname = "filecat.txt"; // задаємо ім'я файлу каталогу $ Files = File ($ catname); // завантажуємо список файлів $ Filelist = explode ($ delimeter, $ files [$ fileno], 2); // читаємо параметри $ Filelist [1] + = 1; // збільшуємо лічильник $ Files [$ fileno] = implode ($ filelist, $ delimeter); // об'єднуємо параметри $ File = fopen ($ catname, "wt"); // відкриваємо файл на перезапис for ($ i = 0; $ i <count ($ files); $ i ++) fputs ($ file, trim ($ files [$ i]). "\ n"); // пишемо туди дані про файлах fclose ($ file); // закриваємо файл header ( "Location: {$ filelist [0]}"); // перенаправляємо браузер на файл ?>

як це використовувати:
на сторінці ставимо таку посилання HREF = "download.php? fileno = x"
де замість х підставляється номер файлу в списку (починаючи з нуля)
---
цей приклад трохи недопрацьований ... так, по хорошому ще треба було б блокувати файл, щоб не було конфліктів при одночасному доступі.



anod   (2001-11-09 20:35) [5]

Упс, не читав ....



Anatoly Podgoretsky   (2001-11-09 22:48) [6]

Якщо хочеш по хорошому то і цього недостатчно, поліпшення можливі наступні
1. замість одного файлу по одному на кожен, сприятливо впливає на швидкість і кількість помилок при блокування, інакше існує можливість заблокувати доступ до всіх файлів.
2. При блокування, треба додатково відловлювати мертві блокування і видаляти їх.

Без виконання цих запобіжних заходів проблеми гарантовані, особливо при інтенсивній роботі.



сторінки: 1 вся гілка

Форум: "пошарпану";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.57 MB
Час: 0.033 c
1-22012
Socol
2001-12-15 16:00
2002.01.08
Микола


7-22432
Voldemar
2001-09-25 04:12
2002.01.08
Призначення пріоритету прізапуске ...


1-22108
Майкл
2001-12-19 19:10
2002.01.08
Протяжна друк на матричному принтері


14-22402
Darker
2001-11-08 12:26
2002.01.08
Шукаю людину з ніком


14-22363
дрімучий
2001-11-02 18:16
2002.01.08
Ну і ...?





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в&#39;єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська