Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema Con Download File

    Salve a tutti,
    prima di scrivere questo post ho dato un occhiata in giro e mi sembra, ameno che mi sia sfuggito qualcosa, che il mio problema nn lo abbia avuto ancora nessuno. LOL.

    Posterò anche il codice, ma prima passo ad una breve descrizione del problema.

    In pratica ho realizzato un gestionale e voglio permettere all'utente di poter visualizzare la lista dei clienti o a preferenza dei contatti, in formato csv e pdf.

    Per il pdf tutto ok, nn ho avuto grossi problemi nella sua creazione e nemmeno per quanto riguarda il file csv.

    Però un piccolo problema per il csv sussiste:

    L'utente può scaricare in locale il file csv sulla propria macchina e poi elaborarlo con excel.
    L'unico problema sta nel fatto che insieme alle informazioni che mi servono, contenute nel csv, viene inviato anche il codice html della pagina.

    Come posso ovviare a questo problema?

    Qualsiasi soluzione è bene accetta
    Grazie,

    Cristian



    Codice PHP:

    if( isset($_POST['Submit']) && $_POST['Submit'] == "Esporta" ){



    //Controllo le caselle spuuntate

    $Spuntati $_POST['kt_pk_clienti'];

    $Contatore count($Spuntati);

    if( 
    $Contatore == ){

    echo 
    "<script type=\"text/javascript\">

    alert(\"PER UTILIZZARE LA FUNZIONE ESPORTA BISOGNA SELEZIONARE ALMENO UN RECORD!!\");

    window.location=\"contatti_list.php\";

    </script>"
    ;

    }

    if( 
    $Contatore ){

    if( isset(
    $_POST['doc_format']) && $_POST['doc_format'] == ){

    echo 
    "<script type=\"text/javascript\">

    alert(\"ERRORE!! SELEZIONARE UN FORMATO PER L'ESPORTAZIONE\");

    window.location=\"clienti_list.php\";

    </script>"
    ;

    }


    if( isset(
    $_POST['doc_format']) && $_POST['doc_format'] != ){



    /**************************************
    *             FORMATO CSV              *
    **************************************/

    if( $_POST['doc_format'] == ){

    // Il file si chiamerà CLIENTI_USER_(DATA ODIERNA)

    // Calcolo la data odierna

    $data date('Y-m-d');

    //Determino L'utente Loggato
    mysql_select_db($database_TecniConn$TecniConn);
    $query_UserLogged "SELECT users.* FROM users WHERE users.id = ".$_SESSION['kt_login_id']."";
    $UserLogged mysql_query($query_UserLogged$TecniConn) or die(mysql_error());
    $row_UserLogged mysql_fetch_assoc($UserLogged);
    $totalRows_UserLogged mysql_num_rows($UserLogged);

    $INIZIALI $row_UserLogged['iniziali'];

    $file_name "CONTATTI_".$INIZIALI."_".$data.".csv";

    $dir_name "csv";

    $apri_file fopen("$dir_name/$file_name","w");

    fputs($apri_file,"RAGIONE SOCIALE;INDIRIZZO;PROV;CAP;CITTA;CODICE FISCALE;TEL FISSO;TEL CELL;FAX;E MAIL;PARTITA IVA;NOME;COGNOME\n");


    foreach(
    $Spuntati as $pippo){

    $_SESSION['IDS'] .= $pippo.",";
    $_SESSION['contatto'] = 1;



    // SELEZIONO I DATI CLIENTE

    mysql_select_db($database_TecniConn$TecniConn);
    $query_Clients "SELECT clienti.* FROM clienti WHERE clienti.id = ".$pippo."";
    $Clients mysql_query($query_Clients$TecniConn) or die(mysql_error());
    $row_Clients mysql_fetch_assoc($Clients);
    $totalRows_Clients mysql_num_rows($Clients);

    // RECUPERO DATI

    if($row_Clients['nome']==""){

    $NOME " ";

    }

    if( 
    $row_Clients['nome']!="" ){

    $NOME $row_Clients['nome'];

    }

    if(
    $row_Clients['cognome']==""){

    $COGNOME " ";

    }

    if( 
    $row_Clients['cognome']!="" ){

    $COGNOME $row_Clients['cognome'];

    }


    if(
    $row_Clients['indirizzo']==""){

    $INDIRIZZO " ";

    }

    if( 
    $row_Clients['indirizzo']!="" ){

    $INDIRIZZO $row_Clients['indirizzo'];

    }


    if(
    $row_Clients['prov']==""){

    $PROVINCIA " ";

    }

    if( 
    $row_Clients['provincia']!="" ){

    $PROVINCIA $row_Clients['provincia'];

    }

    if(
    $row_Clients['cap']==""){

    $CAP " ";

    }

    if( 
    $row_Clients['cap']!="" ){

    $CAP $row_Clients['cap'];

    }

    if(
    $row_Clients['citta']==""){

    $CITTA " ";

    }

    if( 
    $row_Clients['citta']!="" ){

    $CITTA $row_Clients['citta'];

    }

    if(
    $row_Clients['cod_fiscale']==""){

    $COD_FISCALE " ";

    }

    if( 
    $row_Clients['cod_fiscale']!="" ){

    $COD_FISCALE $row_Clients['cod_fiscale'];

    }

    if(
    $row_Clients['tel_fisso']==""){

    $TEL_FISSO " ";

    }

    if( 
    $row_Clients['tel_fisso']!="" ){

    $TEL_FISSO $row_Clients['tel_fisso'];

    }

    if(
    $row_Clients['tel_cell']==""){

    $TEL_CELL " ";

    }

    if( 
    $row_Clients['tel_cell']!="" ){

    $TEL_CELL $row_Clients['tel_cell'];

    }

    if(
    $row_Clients['fax']==""){

    $FAX " ";

    }

    if( 
    $row_Clients['fax']!="" ){

    $FAX $row_Clients['fax'];

    }

    if(
    $row_Clients['email']==""){

    $EMAIL " ";

    }

    if( 
    $row_Clients['email']!="" ){

    $EMAIL $row_Clients['email'];

    }

    if(
    $row_Clients['p_iva']==""){

    $PIVA " ";

    }

    if( 
    $row_Clients['p_iva']!="" ){

    $PIVA $row_Clients['p_iva'];

    }

    if(
    $row_Clients['ragione_sociale']==""){

    $RAGIONE_SOCIALE " ";

    }

    if( 
    $row_Clients['ragione_sociale']!="" ){

    $RAGIONE_SOCIALE $row_Clients['ragione_sociale'];

    }


    fputs($apri_file,"$RAGIONE_SOCIALE;$INDIRIZZO;$PROVINCIA;$CAP;$CITTA;$COD_FISCALE;$TEL_FISSO;$TEL_CELL;$FAX;$EMAIL;$PIVA;$NOME;$COGNOME\n");



    }

    fclose($apri_file);

    // definisco una variabile con il percorso alla cartella
    // in cui sono archiviati i file
    $dir "csv/";
     
    // Recupero il nome del file dalla querystring
    // e lo accodo al percorso della cartella del download
    $file $dir.$file_name;
     
    // verifico che il file esista
    if(!file)
    {
    // se non esiste chiudo e stampo un errore
    die("Il file non esiste!");
    }else{
    // Se il file esiste...
    // Imposto gli header della pagina per forzare il download del file
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename= " $file);
    //header("Content-Transfer-Encoding: binary");

    // Leggo il contenuto del file
    readfile($file);

    }



    }

    /**************************************
    *             FORMATO PDF              *
    **************************************/


    if( $_POST['doc_format'] == ){

    foreach(
    $Spuntati as $pippo){

    $_SESSION['IDS'] .= $pippo.",";

    }

    $_SESSION['contatto'] = 1;

    require_once(
    'fpdf/fpdfTable/EsportaClienti/clienti_start.php');

    }

    }

    }


    Questo codice è funzionante, solamente nn riesco a capire perchè mi venga stampato il codice html.
    Believe in GOD, you could only have Benefits from him!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    il codice è un po' lungo... faccio una supposizione dalla scorsa che ho dato: forse usi readfile dopo aver già visualizzato dei contenuti (mentre per il PDF ti affidi a un altro script che forse lavora diversamente)... eventualmente puoi provare a fare questa modifica per un test:

    da:
    Codice PHP:
    readfile($file); 
    a:
    Codice PHP:
    ob_end_clean();
    readfile($file); 
    exit; 

  3. #3
    Grazie tante, ora funziona.
    Che stupido che sono, volevo proprio utilizzare quella funzione, ma era tutta la mattina che ce l'avevo sulla punta della lingua.

    Ah si la provvidenza. ahahahahahaha

    Grazie infinite

    Cristian
    Believe in GOD, you could only have Benefits from him!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prego!

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.