[PHP] FPDF error: Some data has already been output, can't send PDF file

Discussione in 'PHP' iniziata da alessia77, 7 Settembre 2017.

  1. alessia77

    alessia77 Nuovo Utente

    Registrato:
    7 Settembre 2017
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    Come faccio a capire in che punto si blocca il file, dove si genera l'errore? Non sono molto esperta di questo codice

    Questo è il file che viene eseguito

    <?php
    require('fpdf153/fpdf.php');
    require('fpdf153/classe_write_tag_voucher.php');
    require_once ("setting.inc");
    require ("db_config.inc");
    require("funzioni.php");
    require("funzioni_2.php");

    $query="SELECT * FROM $table_voucher WHERE id='$id_modif'";

    $result=mysql_query($query);
    $struttura_selected=mysql_result($result,0,"id_struttura");
    $tipo=mysql_result($result,0,"tipo");

    if ($tipo =="s") {
    $from_sel_strutt="y";
    }
    else if ($tipo =="t") {
    $from_sel_tour_op="y";
    }
    $array_spett=get_dati_spett($from_sel_strutt,$from_sel_tour_op,$struttura_selected,$struttura_selected);

    $num_persone=get_num_pers($result);

    $pagamento=mysql_result($result,0,"pagamento");
    if (($pagamento=="0") or ($pagamento==""))
    $str_pagam=mysql_result($result,0,"altro_pagam");
    else
    $str_pagam=get_label($table_vouch_pag,"label","code",$pagamento);

    $str_cliente=get_dati_cliente(mysql_result($result,0,"tipo_cliente"),mysql_result($result,0,"cliente"));

    $str_ultima=$array_spett['localita']." ".$array_spett['cap']." ".$array_spett['prov'];

    $str_struttura=concatena_1($str_struttura,"Spett.le","\n");
    $str_struttura=concatena_1($str_struttura,$array_spett['nome'],"\n");
    $str_struttura=concatena_1($str_struttura,$array_spett['indirizzo'],"\n");
    $str_struttura=concatena_1($str_struttura,$str_ultima,"\n");
    $str_struttura=concatena_1($str_struttura,$array_spett['telefono'],"\n");

    define('FPDF_FONTPATH','font/');
    $def_font_family="helvetica";
    $def_font_size='9';
    $def_font_size_testo='7';

    $pdf=new PDF();
    //$pdf->SetMargins(30,15,25);
    $pdf->SetFont($def_font_family,'',$def_font_size);

    $pdf->Open();
    $pdf->AddPage();


    $pdf->Voucher($result,$str_struttura,$num_persone,$str_pagam,$str_cliente,"(ORIGINALE)",$def_font_size,'10','10');

    $altezza=$pdf->GetY() + 5;
    $pdf->SetFont($def_font_family,'',$def_font_size);
    $pdf->Voucher($result,$str_struttura,$num_persone,$str_pagam,$str_cliente,"(Copia1)",$def_font_size,'10',$altezza);

    $altezza=$pdf->GetY() + 5;
    $pdf->SetFont($def_font_family,'',$def_font_size);
    $pdf->Voucher($result,$str_struttura,$num_persone,$str_pagam,$str_cliente,"(Copia2)",$def_font_size,'10',$altezza);

    //$pdf->SetY(-15);

    $pdf->Output();


    ?>
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.756
    Mi Piace Ricevuti:
    67
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    mi sembra che "open" non esista tra le funzioni possibili, vedi anche tu nell'elenco
    http://www.fpdf.org/it/doc/index.php,
    se è una tua funzione, forse dovrebbe andare dopo "AddPage" perché potrebbe scrivere qualcosa prima che la prima pagina sia generata

    poi controlla tutti gli script (anche quelli "require") ed elimina i caratteri e/o spazi che precedono
    "<?php" e che seguono "?>

    fai sapere
     
  3. alessia77

    alessia77 Nuovo Utente

    Registrato:
    7 Settembre 2017
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    sono dei file che non ho generato io, mi è stata data le gestione, ma un altro molto simile, nella stessa cartella , funziona, genera correttamente il pdf

    questo è quello che funziona


    <?php
    require('fpdf153/fpdf.php');
    require('fpdf153/classe_write_tag_programma.php');


    require_once ("setting.inc");
    require ("db_config.inc");


    $nome_cl=urldecode($nome_cl);
    $nome_cl = trim(str_replace("&nbsp;", " ", $nome_cl));

    $query_progr="SELECT id_cliente,destinazione,compreso,non_compreso,supplementi,riduzioni,quota_ind FROM $table_programmi WHERE id='$id_modif'";
    $result_progr=mysql_query($query_progr);

    $destinazione=mysql_result($result_progr,0,"destinazione");

    $array_compreso=explode($separatore_elenco,mysql_result($result_progr,0,"compreso"));
    $array_non_compreso=explode($separatore_elenco,mysql_result($result_progr,0,"non_compreso"));
    $array_supplementi=explode($separatore_elenco,mysql_result($result_progr,0,"supplementi"));
    $array_riduzioni=explode($separatore_elenco,mysql_result($result_progr,0,"riduzioni"));

    $query_giorni="SELECT id,giorno_ord, giorno_sett,data,loc_percorso,pernottamento,descrizione FROM $table_giorni_viaggio WHERE id_programma='$id_modif' ORDER BY giorno_ord";
    $result_giorni=mysql_query($query_giorni);




    define('FPDF_FONTPATH','font/');
    $def_font_family="helvetica";
    $def_font_size='10';


    $pdf=new PDF();
    //$pdf->SetMargins(30,15,25);
    $pdf->SetFont($def_font_family,'',$def_font_size);

    $pdf->Open();
    $pdf->AddPage();


    //SetStyle($tag,$family,$style,$size,$color,$indent=-1)
    $pdf->SetStyle("C",$def_font_family,"I",$def_font_size,"");
    $pdf->SetStyle("S",$def_font_family,"U",$def_font_size,"");
    $pdf->SetStyle("G",$def_font_family,"B",10,"");

    $pdf->SetStyle("A",$def_font_family,"",$def_font_size,"255,165,0");
    $pdf->SetStyle("R",$def_font_family,"",$def_font_size,"255,0,0");
    $pdf->SetStyle("V",$def_font_family,"",$def_font_size,"0,128,0");
    $pdf->SetStyle("B",$def_font_family,"",$def_font_size,"0,0,255");
    $pdf->SetStyle("D",$def_font_family,"",$def_font_size,"128,128,128");


    $pdf->SetStyle("p",$def_font_family,"",$def_font_size,"0,0,0","0");

    $pdf->Intestazione($destinazione,$nome_cl);
    $pdf->Dettaglio($result_giorni);

    $pdf->Finale($result_progr,$separatore_elenco);
    $pdf->Output();
    ?>


    una differenza che ho visto tra i due è nelle prime righe

    require("funzioni.php");
    require("funzioni_2.php");

    se commento una delle due l'errore non viene dato ma restituisce pagina bianca
     
  4. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.756
    Mi Piace Ricevuti:
    67
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    controlla i due file e assicurati che non ci siano spazi che
    precedono "<?php"
    e/o che seguono "?>
     
  5. alessia77

    alessia77 Nuovo Utente

    Registrato:
    7 Settembre 2017
    Messaggi:
    3
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    ho fatto un controllo accurato, sono tantissime righe, un altro file che genera il pdf funziona, è possibile far stampare la riga in cui trova l'errore?
     
  6. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    1.756
    Mi Piace Ricevuti:
    67
    Punteggio:
    48
    Occupazione:
    free lance
    Località:
    Lombardia
    l'errore viene generato all'interno della classe fpdf non dallo script che la usa,
    se non hai ancora risolto, prova una "scorciatoia",
    upload_2017-9-13_20-12-36.png

    in ogni caso ci sono dei caratteri (vedi echo nell'esempio) che vengono visualizzati prima dell'output del pdf
     
Sto caricando...

Condividi questa Pagina