Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Conteggio click piu Invia allo scaricamento

    Ciao a tutti questa è la mia questione


    ho una tabella jgames nella tabella ho messo un campo volte per conteggiare i click


    quando clikki scarica si collega a volte.php

    oltre a questo ce il percorso del mio file $file e l'$id che lo passo con GET


    in volte.php deve

    incrementare il valore del record volte e mandarti al dile da scaricare queato tt nascosto
    perche poi dovrebbe ritornare alla mia pag dove ce il pulsante scarica

    io lo pensata cosi ma nn funziona


    codice:
    <?php
    include('Connessione.php');
    $id=$_GET['id'];
    $volte=$_GET['volte'];
    $volteAgg=$volte+1;
    $file=$_GET['file'];
    
    echo"$volteAgg";
    
    $sql = ("UPDATE jgames set volte='$volteAgg' where id='$id'") or die ("non trovo la tabella");
    
    ?>
    non mi incrementa e poi non so come linkarlo allo scaricamento

    se avete altre idee grazie

    se non sono stato chiaro ditemi pure

    grazie 1000

  2. #2

  3. #3
    ma dove fai echo lo vedi incrementato volte?
    »-(¯`v´¯)-» || AFRO4EVER - Remember the name

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Secondo me dovresti provare a vedere l'intera faccenda da una prospettiva diversa...

    Molto probabilmente se utilizzassi delle tabelle dedicate anzichè un'unica tabella in cui memorizzare tutto, quindi il nome del file col relativo id, il numero complessivo dei click effettuati ecc... sarebbe tutto molto ma molto più semplice.

    Allora, suppenendo di avere a disposizione due tabelle, dlfile e click, diciamo che la prima conterrà il'ID e il nome del file e la seconda servirà per memorizzare il numero di click (download) effettuati.

    Prima di iniziare dovresti aggiungere al file di configurazione la funzione che si occuperà materialmente di eseguire il download del file. ( Grazie andr3a ^^ )

    Codice PHP:
    function forceDownload( &$file ) {
    /**
     * Function forceDownload:
     * download any type of file if it exists and is readable
     * -------------------------------------
     * @author         Andrea Giammarchi
     * @date           18/01/2005 [13/04/2005]
     * @compatibility  PHP >= 4.3.0
     */
    if( file_exists$file ) == true && is_readable$file ) == true ) {
      
    $filename = &basename$file );
        if( 
    strpos$_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false ) {
          
    $parsename = &explode'.'$filename );
          
    $last count$parsename ) - 1;
          
    $filename = &implode'%2E'array_slice$parsename0$last ) );
          
    $filename .= '.'.$parsename[$last];
        }
      
    $content = &file_get_contents$file );
        
    header'Content-Type: application/octet-stream' );
        
    header'Content-Disposition: attachment; filename="'.$filename.'"' );
        
    header'Content-Length:'.strlen$content ) );
        
    header'Content-Transfer-Encoding: binary' );
        echo 
    $content;
        exit(
    0);
        }

    Ok, adesso passiamo al file click.php (andrebbe bene anche download.php, fai tu).
    Il codice è estremamente semplice, segui i commenti...

    Codice PHP:
    //controllo se la variabile id_game è stata passata ed è di tipo intero, poi
    //assegno il suo valore a $id ed eseguo la query per ottenere l'id richiesto
    if(isset($_GET['id_game']) && (int)$_GET['id_game']) {

    $id $_GET['id_game'];

    $sql mysql_query("SELECT * FROM click WHERE id = '$id'") or die(mysql_error());

    //se nalla tabella "click" l'id richiesto non è presente lo inserisco e imposto
    //il valore a 1. Se invece l'id esiste già allora lo incremento soltanto.
    $query = (!mysql_num_rows($sql))
           ? 
    "INSERT INTO click VALUES ('$id', 1)"
           
    "UPDATE click SET num_click = num_click + 1 WHERE id = '$id'";

    //eseguo la query per l'aggiornamento del record
    mysql_query($query) or die(mysql_error());

    //recupero il nome del file dalla tabella dedicata (ovviamente associato all'id_game)
    $sql2 mysql_query("SELECT * FROM dlfile WHERE id = '$id'") or die(mysql_error());
    $file mysql_fetch_object($sql2);

    // ...fine ;)
    forceDownload($file->nome);

    Il grosso e fatto! ti resta solo da mostrare, dove desideri, il link al file da scaricare.
    La cosa importante naturalmente è che il link dovrà essere tipo: click.php?id_game=12

    E' solo un esempio base di come potresti fare...

  5. #5
    Originariamente inviato da neida
    Secondo me dovresti provare a vedere l'intera faccenda da una prospettiva diversa...

    Molto probabilmente se utilizzassi delle tabelle dedicate anzichè un'unica tabella in cui memorizzare tutto, quindi il nome del file col relativo id, il numero complessivo dei click effettuati ecc... sarebbe tutto molto ma molto più semplice.

    Allora, suppenendo di avere a disposizione due tabelle, dlfile e click, diciamo che la prima conterrà il'ID e il nome del file e la seconda servirà per memorizzare il numero di click (download) effettuati.

    Prima di iniziare dovresti aggiungere al file di configurazione la funzione che si occuperà materialmente di eseguire il download del file. ( Grazie andr3a ^^ )

    Codice PHP:
    function forceDownload( &$file ) {
    /**
     * Function forceDownload:
     * download any type of file if it exists and is readable
     * -------------------------------------
     * @author         Andrea Giammarchi
     * @date           18/01/2005 [13/04/2005]
     * @compatibility  PHP >= 4.3.0
     */
    if( file_exists$file ) == true && is_readable$file ) == true ) {
      
    $filename = &basename$file );
        if( 
    strpos$_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false ) {
          
    $parsename = &explode'.'$filename );
          
    $last count$parsename ) - 1;
          
    $filename = &implode'%2E'array_slice$parsename0$last ) );
          
    $filename .= '.'.$parsename[$last];
        }
      
    $content = &file_get_contents$file );
        
    header'Content-Type: application/octet-stream' );
        
    header'Content-Disposition: attachment; filename="'.$filename.'"' );
        
    header'Content-Length:'.strlen$content ) );
        
    header'Content-Transfer-Encoding: binary' );
        echo 
    $content;
        exit(
    0);
        }

    Ok, adesso passiamo al file click.php (andrebbe bene anche download.php, fai tu).
    Il codice è estremamente semplice, segui i commenti...

    Codice PHP:
    //controllo se la variabile id_game è stata passata ed è di tipo intero, poi
    //assegno il suo valore a $id ed eseguo la query per ottenere l'id richiesto
    if(isset($_GET['id_game']) && (int)$_GET['id_game']) {

    $id $_GET['id_game'];

    $sql mysql_query("SELECT * FROM click WHERE id = '$id'") or die(mysql_error());

    //se nalla tabella "click" l'id richiesto non è presente lo inserisco e imposto
    //il valore a 1. Se invece l'id esiste già allora lo incremento soltanto.
    $query = (!mysql_num_rows($sql))
           ? 
    "INSERT INTO click VALUES ('$id', 1)"
           
    "UPDATE click SET num_click = num_click + 1 WHERE id = '$id'";

    //eseguo la query per l'aggiornamento del record
    mysql_query($query) or die(mysql_error());

    //recupero il nome del file dalla tabella dedicata (ovviamente associato all'id_game)
    $sql2 mysql_query("SELECT * FROM dlfile WHERE id = '$id'") or die(mysql_error());
    $file mysql_fetch_object($sql2);

    // ...fine ;)
    forceDownload($file->nome);

    Il grosso e fatto! ti resta solo da mostrare, dove desideri, il link al file da scaricare.
    La cosa importante naturalmente è che il link dovrà essere tipo: click.php?id_game=12

    E' solo un esempio base di come potresti fare...

    ciao mi potresti dire la sintassi della tabella click ?

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    La struttura della tabella "click" è estremamente semplice. Possiede solo due colonne: id e num_click. Questo è lo schema...

    codice:
    id int(5) not null auto_increment,
    num_click int(5) not null,
    primary key (id)

  7. #7
    Originariamente inviato da neida
    La struttura della tabella "click" è estremamente semplice. Possiede solo due colonne: id e num_click. Questo è lo schema...

    codice:
    id int(5) not null auto_increment,
    num_click int(5) not null,
    primary key (id)

    ok!! grazie appena ho tempo la provo e ti faccio sapere

  8. #8
    Ho creato una pagina di nome download.php con il codice sopra che mi hai scritto(non ho cambiato nulla)


    e poi sui miei pulsanti scarica ho messo questo link


    <a href='download.php?id_game=".$record['id']."'>

    esempio

    ke online mi porta download.php?id_game=45

    e fino a qui mi sembra giusto

    quando clikko


    ecco l'errore


    No database selected


    devo modificare qulkosa nel codice ke mi hai passato?

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    No, del codice che ti ho suggerito non devi modificare nulla tranne, ovviamente, aggiungere una nuova connessione al tuo database, con i tuoi dati, da inserire logicamente nella pagina download.php

    L'errore che ricevi (nessun database selezionato) nasce proprio dall'assenza di una connessione al database.

  10. #10
    VVoVe: ok risolto mancava il collegamento al database=) ora funziona tt

    o almeno solo l'incremento al click!

    non mi fa lo scaricamento vero e proprio!!

    e poi si ferma alla mia pagina bianca vorrei invece ke ritornasse dove era prima=)



    io le mie pagine sono in questo modo

    filess.php?file=jgames

    oppure

    filess.php?file=jsfondi

    e possibile se invio anke categoria fare una cosa del genere in download.php?

    codice:
    $categoria = $_GET['categoria']; 
    
    include('filess.php?file=$categoria');
    cmq il download vero e proprio niente ovvero dovrebbe uscire la finiostrella per scaricare il file in auotmatico

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.