balaico 0 Denunciar post Postado Agosto 26, 2016 Saudações. Estive a ler alguns posts aqui como na net e ainda não dei conta problema... O que se passa é o seguinte: estou a ajudar uma associação local e uma das coisas necessárias é a geração de PDFs para futura impressão, ora após instalar e configurar o fpdf nada de especial e a funcionar (no XAMPP). Ao fazer o upload para o server onde foi adquirido um determinado alojamento e dominio, obtenho o seguinte erro: Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; FPDF has a deprecated constructor in /srv/disk6/urldoserver/fpdf/fpdf.php on line 12FPDF error: Some data has already been output, can't send PDF file (output started at /srv/disk6/urldoserver/rel_funcionario.php:1). Após pesquisa na net a solução mais "falada"seria seguir usando ob_start(); e ob_end_flush(); --> assim o fiz e o problema mantém-se. Sei que não devo ter nenhum HTML antes e alterei para que tal não aconteça mas o problema mantêm-se. Sendo assim coloco aqui parte do código: <?php ob_start(); 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->Cell(0,1,$nav_links['obs'],1,1); $pdf->ln(); $pdf->Output(); ob_end_flush(); ?> ps: o erro do fpdf na linha 12 refere-se ao inicio da classe: class FPDF Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Agosto 26, 2016 Qual versão do php você utiliza ? Ao que parece, você está utilizando uma biblioteca de versão que não da suporte a sua versão atual do php, pois utiliza funções depreciadas, conforme a mensagem. ob_start() serve para armazenar o buffer de saída, trabalhando em conjunto com ob_get_clean(); você terá todo o html gerado, então é só passar para o FPDF. Compartilhar este post Link para o post Compartilhar em outros sites
balaico 0 Denunciar post Postado Agosto 27, 2016 Saudações. Desde já obrigado pela resposta. Fui ao site fpdf.org e actualizai para a versão 1.81 e o problema mantém-se, já vi vídeos e reli alguns artigos mas nenhum me ajudou por aí alem. O problema está que numa página (funcionario.php) está o conteúdo relativo a um funcionário e caso o utilizar queira imprimir/converter clica num link (<?php echo "<a href=\"./?p=rel_funcionario&func=" ...) que envia para a pagina referida com um elemento que é recebido depois para ser reutilizado: <?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(); ... No XAMPP tudo ok, no alojamento: Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file (output started at /localizacaodosite/rel_funcionario.php:1) Compartilhar este post Link para o post Compartilhar em outros sites
balaico 0 Denunciar post Postado Agosto 29, 2016 Nunca ninguém teve este problema? Compartilhar este post Link para o post Compartilhar em outros sites
valdir araujo 0 Denunciar post Postado Março 10, 2017 Em 26/08/2016 at 15:04, Alaerte Gabriel disse: Qual versão do php você utiliza ? Ao que parece, você está utilizando uma biblioteca de versão que não da suporte a sua versão atual do php, pois utiliza funções depreciadas, conforme a mensagem. ob_start() serve para armazenar o buffer de saída, trabalhando em conjunto com ob_get_clean(); você terá todo o html gerado, então é só passar para o FPDF. Passando para agradecer pela dica do ob_start() Estava quebrando a cabeça a dias tentando descobrir porque não estava gerando o pdf e nem mostrava erro. Foi resolvido colocando ob_start no inicio e ob_end_flush ao fim. Compartilhar este post Link para o post Compartilhar em outros sites