Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

balaico

FPDF output error

Recommended Posts

balaico

Saudações.

Estive a ler aqui e noutros locais posts sobre o meu problema e mesmo assim ainda não vi nenhuma solução. O que se passa é o seguinte, quando fiz o upload do meu site, obti essa mensagem:Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file (output started at /srv/disk6/blablasite/rel_funcionario.php:1).

Estou a usar o fpdf v. 1.81 e desenvolvendo em PHPv(utilizo o XAMPP e o Notepad ++) e lá funciona, mas quando fiz o upload deu esse erro fatal.

Basicamente a ideia é essa: na página funcionario.php mostro todos elementos do funcionário (morada, telf, etc, fazendo a respectiva query na BD), e caso o utilizador queira imprimir/ converter para PDF pressiona o link :

<p><?php echo "<a href=\"./?p=rel_funcionario&func=" . urlencode($nav_links['id_funcionario']). "\" target=\"_blank\">IMPRIMIR RELATORIO</a>"; ?> </p>

Na página rel_funcionario.php obtenho o elemento func e faço o processamento do PDF: 

<?php
        require ("fpdf/fpdf.php");
        
        if (isset($_GET['func'])){
            $func_selc = $_GET['func'];
        } else{
            redireciona("./?p=funcionarios");
        }
        
        $nav_links = obtem_func_id ($func_selc);
        
        $pdf=new FPDF('P','cm','A4');
        $pdf->AddPage();
        $pdf->SetTitle("blabla");
        $pdf->SetAuthor("blabla");
        $pdf->SetSubject('blabla');
        $pdf->SetFont('Arial','BI',12);
        ...
        $pdf->Cell(0,1,$nav_links['obs'],1,1);
        $pdf->ln();
    
        $pdf->Output();
    ?>

Sei que não posso enviar nenhum HTML ou qualquer espaço (já procurei e verifiquei) mas ainda não dei com o problema.

Alguém daqui já teve esse problema ou me pode ajudar?

Share this post


Link to post
Share on other sites
HappyHippyHippo

esse problema não tem nada haver com o fpdf

como o erro indica,, não pode existir nenhuma informação a ser processada antes de qualquer alteração de um header da resposta (que é o que está a acontecer)

o normal é estares a gravar os teus ficheiros em UTF8 c/ BOM

solução : tira o BOM

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
balaico

Boas HappyHippyHippo.

Desde já agradeço a resposta.

Por acaso tinha o file funcionario.php em UTF8 c/ BOM, lá fui ao encode e defini só como UTF8 (o rel_funcionario.php já estava em UTF8), já fiz o upload e o problema mantêm-se...

Espanta-me esse erro e não ter havido mais utilizadores a obtê-lo. Ando já as voltas com isso e não vejo como um problema simples não tenha solução. Não sei quais as alternativas tenho para converter para PDF mas tenho que pensar em alguma solução.

 

Share this post


Link to post
Share on other sites
Knitter

O problema é simples e tem solução, não tem é nada a ver com PDF. Estás a enviar informação para o browser a mais e na ordem errada; estás a enviar texto (mesmo que sejam um espaço ou símbolo invisível) e depois de iniciares o envio estás a alterar os cabeçalhos do pedido, naturalmente isso dá problemas. Como estás a tentar gerar um PDF assumo que quem esteja a alterar os headers seja o FPDF, daí te terem dado a sugestão de removeres o BOM (nunca lá devia ter estado).

Confirma se o ficheiro está mesmo alterado (sem BOM) e além disso se não estás a enviar qualquer informação antes de enviares o PDF para o browser, seja um echo perdido, um return com texto, espaço antes das tags PHP.

  • Vote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.