[Browser & php]Conteggio download Clicca QUI per vedere il messaggio nel forum |
Drake83 |
Ciao! Sto svolgendo uno stage (con successiva tesi sull'operato) e sono nella fase in cui devo gestire varie operazioni di reporting. Mi è stato commissionato di tenere traccia del numero di download per file. Il quesito è questo: esiste in php una funzione ( o un insieme di funzioni ) che gestisca il caricamento da parte del browser del file? Avendo questo tipo di funzione io potrei eseguire tutte le mie operazioni sul db ma ho bisogno di incercettare l'operazione di download o apertura del file. Sapreste aiutarmi?
Spero di essere stato chiaro (anche se ci credo poco :) )
:ciao: |
DeepBlue |
Mah non saprei, non mi sono mai occupato di una cosa simile, in ogni caso, senza pensarci troppo, se devi lavorare solo con php io farei così:
l'utente clicca per il download e viene rediretto ad un'altra pagina, dove poi il download parte in automatico (in stile download.com). In questa pagina c'è un controllo in php che controlla il referer e se questo è uguale alla pagina dove il file viene linkato, allora incrementa il contatore dei download.
Forse ci sono soluzioni più pratiche con Javascript, ma dato che io non lo conosco, lascio ad altri eventuali suggerimenti :)
In ogni caso potresti cercare su google, magari con le keyword "click counters" |
Drake83 |
Originally posted by DeepBlue
Mah non saprei, non mi sono mai occupato di una cosa simile, in ogni caso, senza pensarci troppo, se devi lavorare solo con php io farei così:
l'utente clicca per il download e viene rediretto ad un'altra pagina, dove poi il download parte in automatico. In questa pagina c'è un controllo in php che controlla il referer e se questo è uguale alla pagina dove il file viene linkato, allora incrementa il contatore dei download.
Forse ci sono soluzioni più pratiche con Javascript, ma dato che io non lo conosco, lascio ad altri eventuali suggerimenti :)
l'idea non è male ma come faccio a dire alla pagina richiamata di far aprire il file? una fopen() apre un file mica lo manda al browser vero? |
Gusher |
Originally posted by Drake83
l'idea non è male ma come faccio a dire alla pagina richiamata di far aprire il file? una fopen() apre un file mica lo manda al browser vero?
//apri un immagine in lettura e binary mode
$handle = fopen ($str_path_image, "rb");
//"leggi" l'immagine
$image = fread($handle, filesize($str_path_image));
//chiudi il file
fclose($handle);
//scrivi gli header specificando il content-type
Header("Content-type: image/jpeg");
//visualizzi l'immagine
echo $image;
Ciauz |
DeepBlue |
Originally posted by Gusher
//apri un immagine in lettura e binary mode
$handle = fopen ($str_path_image, "rb");
//"leggi" l'immagine
$image = fread($handle, filesize($str_path_image));
//chiudi il file
fclose($handle);
//scrivi gli header specificando il content-type
Header("Content-type: image/jpeg");
//visualizzi l'immagine
echo $image;
Ciauz
soluzione veramente nerd :approved:
Se non vuoi usare php, puoi usare un'attributo di meta in questo modo:
<meta http-equiv="refresh" content="2;url=http://www.boh.com/files/file.ext">
che dovrebbe funzionare lo stesso :) |
Drake83 |
Originally posted by DeepBlue
soluzione veramente nerd :approved:
Se non vuoi usare php, puoi usare un'attributo di meta in questo modo:
<meta http-equiv="refresh" content="2;url=http://www.boh.com/files/file.ext">
che dovrebbe funzionare lo stesso :)
la soluzione da nerd :D nn può andare bene perchè i file possono essere molto eterogenei tra loro e controllare l'header staticamente non è proponibile. Meglio il tuo "escamotage" grazie 1000 :D!
:ciao: |
|
|
|