Ir para o conteúdo
balaico

FPDF output error

Mensagens Recomendadas

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

  • Voto 1

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.