Visualizzazione risultati 1 fino 16 di 16

Discussione: Contatore click su link

  1. #1
    Guest

    Predefinito Contatore click su link

    Salve a tutti!
    Allora.. Non riesco a trovare uno script adatto alle mie esigenze.
    Quel che mi serve è un contatore di clic su UN SOLO LINK da me selezionato.
    Esempio: In una pagina c'è il link
    Scarica il file file.mp3
    che porta alla pagina
    download_file.mp3.php
    e al suo interno:

    Codice PHP:
    <?php
    $file
    = "file.mp3";
    header("Cache-Control: public");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Type: audio/mp3");
    readfile($file);
    ?>
    Ho deciso di complicarmi la vita creando la pagina download_file.mp3.php perchè con alcuni browser si apre la canzone senza scaricarla.

    Tornando a noi.. avrei bisogno, di un piccolo contatore del tipo
    File scaricato XX volte.
    Che NON necessiti di un database MySQL (va bene database testuale). Si può fare la cosa? Perchè non ho trovato granchè su internet..

    Grazie in anticipo, ciao!

  2. #2
    Guest

    Predefinito

    allora, puoi fare qualcosa di molto semplice, ora te lo scrivo:

    count_download.php
    Codice PHP:
    <?php
    $ip
    = $_SERVE['REMOTE_ADDR'];
    $text = "$ip\n";
    $fp = fopen('counter.txt', 'a+');
    fwrite($fp, $text);
    fclose($fp);
    header("location: download_file.mp3.php");
    ?>
    in pratica scrive su una riga del file di testo l'ip di chi clicca, ricorda che però il link dovrà mandare a count_download.php
    poi per leggere le visite basterà fare:

    read_visit.php
    Codice PHP:
    <?php
    $f
    = file("counter.txt");
    $n = count($f);
    $volte = "volta";
    if (
    $n > 1){
    $volte = "volte";
    }
    $num_download = "$n $volte";
    ?>
    ti basterà poi includere il secondo file in tutte le pagine in cui vuoi far vedere il numero di visite e scriverai:

    Codice PHP:
    Il file é stato scaricato <? echo $num_download; ?>
    in questo modo ti mette a posto anche il plurale
    Ultima modifica di worldpixel : 28-06-2010 alle ore 15.50.42

  3. #3
    Guest

    Predefinito

    Funziona! :D Oh almeno.. in parte funziona^^"
    Apre tutto e visualizza tutto correttamente, l'unica cosa è che il contatore rimane 1..

  4. #4
    Guest

    Predefinito

    Scusa, è colpa mia, ho sbagliato a scrivere una cosa, al posto di $_SERVE['REMOTE_ADDR'] scrivi $_SERVER['REMOTE_ADDR']


    altro edit

    nel file read_visit.php ci va:

    Codice PHP:
    <?php
    $file
    = "counter.txt";
    if(
    file_exists($file)){
    $f = file($file);
    $n = count($f);
    $volte = "volte";
    if (
    $n == 1){
    $volte = "volta";
    }
    $num_download = "$n $volte";
    } else {
    $num_download = "0 volte";
    }
    ?>
    al posto di quello che c'era scritto prima, così si risolve tutto
    Ultima modifica di worldpixel : 28-06-2010 alle ore 17.36.20

  5. #5
    Guest

    Predefinito

    Non si aggiorna ugualmente ._.

  6. #6
    Guest

    Predefinito

    un contaclick semplice come questo?
    http://sebrac.altervista.org/standar...mode=downloads
    per provarlo fai click sull'immagine e poi F5 per vedere il numero di download che si aggiorna

  7. #7
    Guest

    Predefinito

    strano, a me funziona benissimo

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da sebrac Visualizza messaggio
    un contaclick semplice come questo?
    http://sebrac.altervista.org/standar...mode=downloads
    per provarlo fai click sull'immagine e poi F5 per vedere il numero di download che si aggiorna
    Esatto, come quello!

    @worldpixel: Ho provato con altri browser, ho provato a cancellare cookie e cache ma nulla ._.

  9. #9
    Guest

    Predefinito

    non credo c'entrino i browser ne i cookie (visto che il mio script non li usa), scrivi il codice che hai, magari c'é qualche errore che ho fatto io o che hai fatto tu

  10. #10
    Guest

    Predefinito

    count_download.php
    Codice PHP:
    <?php
    $ip
    = $_SERVER['REMOTE_ADDR'];
    $text = "$ip\n";
    $fp = fopen('counter.txt', 'a+');
    fwrite($fp, $text);
    fclose($fp);
    header("location: download_ciao.php");
    ?>
    download_ciao.php
    Codice PHP:
    <?php
    $file
    = "file.mp3";
    header("Cache-Control: public");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Type: audio/mp3");
    readfile($file);
    ?>
    read_visit.php
    Codice PHP:
    <?php
    $file
    = "counter.txt";
    if(
    file_exists($file)){
    $f = file($file);
    $n = count($f);
    $volte = "volte";
    if (
    $n == 1){
    $volte = "volta";
    }
    $num_download = "$n $volte";
    } else {
    $num_download = "0 volte";
    }
    ?>


    <?php echo"$num_download"; ?>


    <a href="count_download.php">cliccami!</a>
    counter.txt
    Codice:
    Ho provato ad inserire 0, 1 o nulla ma non cambia niente

  11. #11
    Guest

    Predefinito

    una domanda, i sono tutti nella stessa cartella?

  12. #12
    Guest

    Predefinito

    Yess, tutti nella cartella base

  13. #13
    Guest

    Predefinito

    il problema é semplicissimo, risolvi mettendo all'inizio del file read_visit.php un refresh html (cerca su google) e si sistema tutto, infatti se provi a premere f5 dopo aver scaricato il file il numero aumenta

  14. #14
    L'avatar di gnammo
    gnammo non è connesso Neofita
    Data registrazione
    22-03-2005
    Residenza
    Palepolis
    Messaggi
    16

    Predefinito

    Citazione Originalmente inviato da bizeey Visualizza messaggio
    Salve a tutti!
    Allora.. Non riesco a trovare uno script adatto alle mie esigenze.
    Quel che mi serve è un contatore di clic su UN SOLO LINK da me selezionato.
    Esempio: In una pagina c'è il link
    Scarica il file file.mp3
    che porta alla pagina
    download_file.mp3.php
    e al suo interno:

    Codice PHP:
    <?php
    $file
    = "file.mp3";
    header("Cache-Control: public");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Type: audio/mp3");
    readfile($file);
    ?>
    Ho deciso di complicarmi la vita creando la pagina download_file.mp3.php perchè con alcuni browser si apre la canzone senza scaricarla.

    Tornando a noi.. avrei bisogno, di un piccolo contatore del tipo
    File scaricato XX volte.
    Che NON necessiti di un database MySQL (va bene database testuale). Si può fare la cosa? Perchè non ho trovato granchè su internet..

    Grazie in anticipo, ciao!
    Io mi son creato queste 2 funzioncine dato che avevo la tua stessa esigenza:
    Codice PHP:
    // La prima funzione crea il file contatore, devi passare come parametro il nome
    // del file es: setCounter("contatore.txt");

    function setCounter($counterFile){
    /*Se il file non esiste allora lo creiamo */
    if(!file_exists($counterFile)){
    $fp=fopen($counterFile,"w");
    fwrite($fp,"1"); //Inizializzandolo a 1 visita
    fclose($fp);
    }else{
    // altrimenti creo un cookie in modo che il contatore non si aggiorni
    // con lo stesso utente durante la sessione
    if(!@$_COOKIE['visite']){
    setcookie('visite','1',time()+60*60*24);
    // Apro il file con la funzione file
    $fh=file($counterFile);
    // così prelevo la prima riga che è il nostro numerino
    $fh[0]++; // lo incremento e di successivamente lo salvo
    $fp=fopen($counterFile,"w");
    fwrite($fp,$fh[0]);
    fclose($fp);
    }
    }
    }

    //quest'altra funzione invece serve per leggere il contenuto del file contatore
    // banalissima :P, piglia come parametro il nostro file ad es:
    // echo "Visite: ".showCounter("contatore.txt");

    function showCounter($counterFile){
    /*Controllo se esiste il contatore altrimenti restituisco un bel 0*/
    if(!file_exists($counterFile)){
    return
    0;
    }else{
    //leggo il contenuto del file e lo restituisco... è vero mo che ci penso
    //avrei potuto usare anche qui file :D looool che genio hihiiih
    $fp=fopen($counterFile,"r");
    $cont=fread($fp,filesize($counterFile));
    fclose($fp);
    return
    $cont;
    }
    }
    Ciao :)
    Try to empty your mind, be formless, shapeless like water. Water can flow. Water can crash. You put water into a cup, it becomes the cup; you put water into a bottle, it becomeas the bottle; you put water into a teapot, it becomes the teapot. Be water, my friend.
    (Bruce Lee)
    GnammoHOME - GnammoART

  15. #15
    Guest

    Predefinito

    #worldpixel: nulla ._.
    #gnammo: scritto solo così (con ovviamente <?php e ?>) non succede nulla ._.

  16. #16
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da bizeey Visualizza messaggio
    #worldpixel: nulla ._.
    #gnammo: scritto solo così (con ovviamente <?php e ?>) non succede nulla ._.
    Stai pretendendo la pappa pronta , nessuno è dovuto a risponderti. Il minimo che puoi fare per questi utenti che stanno cercando di aiutarti è ringraziarli.

    1. worldpixel, gentilmente, ti ha scritto il codice e ti ha detto direttamente come fare.
    2. gnammo invece, sempre gentilmente, ti ha postato la definizione ( con tanto di commenti ) di 2 funzioni che sarai tu a scegliere dove e quando richiamarle.


    Sta a te scegliere quale script usare.
    Io li ho controllato entrambi e se usati giustamente, funzioneranno.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •