php - uso - programmare joomla




Come posso monitorare i download di file (6)

Ho un sito Web che riproduce mp3 in un flash player. Se un utente fa clic su "Riproduci", il flash player scarica automaticamente un mp3 e inizia a riprodurlo.

C'è un modo semplice per tenere traccia di quante volte è stato scaricato un particolare brano (o qualsiasi file binario)?

Il link di riproduzione è un collegamento al file mp3 attuale o ad un codice javascript che fa apparire un lettore?

In quest'ultimo caso, puoi facilmente aggiungere il tuo codice di registrazione per tenere traccia del numero di accessi.

Se il primo, avrai bisogno di qualcosa che possa tracciare il log del server web stesso e fare questa distinzione. Il mio piano di hosting viene fornito con Webalizer, che lo fa bene.

È un codice javascript in modo che risponda a questo.

Tuttavia, sarebbe bello sapere come tenere traccia dei download utilizzando l'altro metodo (senza cambiare host).


Esiste un database per la tua libreria musicale? Se è presente un codice server che viene eseguito durante il download dell'mp3, è possibile aggiungere un ulteriore codice per aumentare il conteggio dei brani. Si potrebbe anche fare in modo che javascript faccia una seconda richiesta per aumentare il conteggio dei giochi, ma ciò potrebbe portare a persone / robot che aumentano falsamente i conteggi.

Lavoravo per un sito Internet-radio e usavamo tavoli separati per tenere traccia del tempo in cui ogni canzone veniva riprodotta. I nostri stream erano alimentati da uno script perl che eseguiva icecast, quindi abbiamo attivato una richiesta di database ogni volta che iniziava la riproduzione di una nuova traccia. Quindi per calcolare il conteggio delle riproduzioni avremmo eseguito una query per contare quante volte l'ID di una canzone era nel registro delle riproduzioni.


Il link di riproduzione è un collegamento al file mp3 attuale o ad un codice javascript che fa apparire un lettore?

In quest'ultimo caso, puoi facilmente aggiungere il tuo codice di registrazione per tenere traccia del numero di accessi.

Se il primo, avrai bisogno di qualcosa che possa tracciare il log del server web stesso e fare questa distinzione. Il mio piano di hosting viene fornito con webalizer, che lo fa bene.


La cosa divertente è che ho scritto una galleria multimediale php per tutta la mia musica 2 giorni fa. Ho avuto un problema simile. Sto usando http://musicplayer.sourceforge.net/ per il giocatore. E le playlist sono costruite tramite php. Tutta la richiesta di musica va lì uno script chiamato xfer.php? File = WHATEVER

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

E quando chiami i file usa qualcosa come:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Se stai utilizzando un javascript o un flash player (ad esempio un player JW) che richiede che il link effettivo sia un file mp3 o altro, puoi aggiungere il testo "& type = .mp3" in modo che il linke finale diventi qualcosa del tipo: "www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3" . In questo modo sembra che finisca con un'estensione mp3 senza influire sul collegamento al file.


Potresti persino impostare una direttiva .htaccess di Apache che converte le richieste * .mp3 nella query querystring con cui stai lavorando. Potrebbe essere un modo elegante per mantenere la richiesta diretta ed essere comunque in grado di integrare la funzione di log nella risposta.


Usa bash:

grep mp3 /var/log/httpd/access_log | wc





analytics