gildo.rj 0 Denunciar post Postado Setembro 21, 2011 (editado) Bom dia grupo. Alguem pode analisar esse codigo e me dizer o porque desse erro???? <?php define('FPDF_FONTPATH', 'fpdf/font/'); require('fpdf/fpdf.php'); include "config.php"; $sql = mysql_query("SELECT * FROM ues ORDER BY nome"); $pdf = new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('courier','b', 10); $pdf->Cell(40, 5, 'Código'); $pdf->SetX(35); $pdf->Cell(60, 5, 'Nome'); $pdf->SetX(50); $pdf->Cell(40, 5, 'Alunos'); $pdf->SetX(77); $pdf->Cell(40, 5, 'Endereço'); while ($resultado = mysql_fetch_array($sql)) { $pdf->ln(); $pdf->Cell(40, 5, $resultado['cod']); $pdf->SetX(35); $pdf->Cell(60, 5, $resultado['nome']); $pdf->SetX(50); $pdf->Cell(40, 5, $resultado['alunos']); $pdf->SetX(77); $pdf->Cell(40, 5, $resultado['end']); } $pdf->Output(); ?> Editado Setembro 21, 2011 por Bruno Augusto Adicionar BCode CODE Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Setembro 21, 2011 Veja se, até antes da chamada ao método Output() nenhum tipo de HTML tenha sido enviado, porpositalmente (com echo/print) ou não (como um espaço no início do arquivo). Compartilhar este post Link para o post Compartilhar em outros sites
pedroserquiz 0 Denunciar post Postado Maio 2, 2012 pessoal estou com o mesmo erro.... porem, o meu erro da apenas quando envio o arquivo pro servidor e tento acessar online... quando acesso localmente funciona direitinho. o que poderá ser? ja retirei espaços e verifiquei se tem algum print o echo e nada...... Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Maio 2, 2012 O seu problema em particular é que localmente seus alertas de erro estão muito baixos ou esativados, daí você não vê o erro. No servidor, 98% das vezes tudo está devidamente configurado, daí você sempre verá o erro. Compartilhar este post Link para o post Compartilhar em outros sites
pedroserquiz 0 Denunciar post Postado Maio 2, 2012 mas nesse caso é seguro retirar mensagens de erros entao do pdf? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Maio 2, 2012 Mas você não vai mandá-las. Habilitando/exibido-as você verá onde o problema está e, então, o irá consertar, ao invés de varrê-lo para baixo do tapete. Uma vez corrigidas, elas não vão mais aparecer e, com isso, o output do PDF será perfeito. Compartilhar este post Link para o post Compartilhar em outros sites
pedroserquiz 0 Denunciar post Postado Maio 3, 2012 e como posso corrigir? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Maio 3, 2012 Primeiro vamos tentar corrigir os pequenos possíveis erros. Ah! Se eu ganhasse uma moedinha cada vez que eu escrevo o CODE abaixo... :P ini_set( 'display_errors', TRUE ); error_reporting( E_ALL | E_STRICT ); // Para PHP >= 5 e < 5.4 error_reporting( E_ALL ); // Para PHP < 5 e >= 5.4 Se estiver trabalhando com querystrings, em que toda requisição passa por um único arquivo, adicione no início deste, que normalmente é o index.php ou algum possível config.php incluído no primeiro. Caso contrário, adicione no início de cada arquivo. Lembre-se de usar apenas um dos dois possíveis error_reporting(), de acordo com sua versão do PHP. :thumbsup: No seu caso, localmente, pode também alterar diretamente as diretivas display_errors e error_reporting no PHP.INI. Basta alterar, salvar o arquivo e reiniciar o servidor. Se você cometeu os diversos e possíveis errors de programação os quais o PHP inadvertidamente "deixa passar", vai pipocar erro pra tudo quanto é lado, vá corrigindo aos poucos, se necessário. Quanto ao problema específico da mensagem de headers already sent, se você quiser uma explicação um pouquinho mais detalhada sobre o porquê, veja essa resposta (minha também) e veja se pode ser aplicada ao seu caso. Interprete além da resposta. De repente você não tem um HTML manualmente escrito, mas pode ser que seu arquivo contenha a infame assinatura BOM (Byte-Order Mask). Lembre-se que Sessions também pode causar problemas, caso estejam sendo enviadas antes de FPDF::output(), método o qual invocado header(), para definir o Content-type do arquivo PDF. Mas, no fundo, no fundo, a forma mais fácil de saber onde o causador do problema reside, basta ler a mensagem de erro, que mostra o arquivo e a linha do mesmo onde está havendo alguma saída HTML. Veja qual situação se aplica a seu caso, efetue as modificações e poste caso não tenha sucesso. Compartilhar este post Link para o post Compartilhar em outros sites
Guariento 1 Denunciar post Postado Dezembro 4, 2012 Se você está usando o Dreamweaver, siga os passos: Abra arquivo por arquivo: 'fpdf/fpdf.php', 'config.php' e este arquivo PHP que você está usando, e copie o conteúdo de cada um com CTRL+C. Clique em File/New (Arquivo/Novo), depois escolha "PHP" e em layout escolha "<nenhum(a)>", então clique no botão <Criar>. Com o novo documento aberto, cole o código CTRL+V. Então a real solução: clique em File/Save As (Arquivo/Salvar Como), escolha "C (Decomposição Canônica, seguido por Composição Canônica)" em "Formulário de normalização Unicode", e desmarque a opção "Incluir assinatura Unicode (BOM)". Faça isso para esses três arquivos. Pronto, seu problema é resolvido. As vezes só desmarcando "Incluir assinatura Unicode (BOM)" é suficiente. Explicação: Em UTF-16/32, um BOM (U+FEFF) é posicionado como primeiro caractere do arquivo para indicar a extremidade de todos os códigos 16/32-bit do arquivo. Quando você dá um include ou require, esse caractere aparece antes de todo o resto do documento. O "byte order mark (BOM)" é um caractere Unicode usado para denotar a extremidade (ordem de bytes) de um arquivo de texto ou fluxo de dados, com código U+FEFF. Por essa razão o FPDF diz que existem dados antes do Output. Se você não usa Dreamweaver, o próprio Notepad quando você clica em Save As, lhe oferece algumas opções de Codificação que podem resolver o problema. Se for o caso, baixe o Notepad++, leve e muito útil. Compartilhar este post Link para o post Compartilhar em outros sites
Carlos Antoliv 6 Denunciar post Postado Fevereiro 10, 2013 (editado) Faz o seguinte, brother, insira: ob_start (); antes da linha: $pdf -> Output(); este comando serve para iniciar o buffer. Rode o sistema. Editado Setembro 27, 2015 por Carlos Antoliv 1 Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Fevereiro 10, 2013 @Carlos Antoliv, apesar de sua resposta vir apenas dois meses depois da última, o tópico em si é bastante antigo.Mesmo assim, agradecemos por compartilhar seu conhecimento conosco e pedimos que continue colaborando em tópicos mais recentes.Contudo, vale salientar que ob_start() não limpa o buffer, ele simplesmente o inicia. Quem limpa o buffer é ob_clean() e ob_end_clean(), sendo que o segundo além de limpar também mostra aquilo que foi armazenado nele. Compartilhar este post Link para o post Compartilhar em outros sites
Brow_tec 0 Denunciar post Postado Março 9, 2013 Apesar do Topico ser bem antigo, mas me ajudou bastante então estou para agradecer a todos os post pois isso clareou muito minha mente e consegui sanar todas as minhas duvidas... Obrigado A todos Imasters Compartilhar este post Link para o post Compartilhar em outros sites
eric123 0 Denunciar post Postado Novembro 26, 2013 (editado) Ajudou! Mas quando peço pra salvar o arquivo PDF ele nao é reconhecido por nenhum leitor de PDF :/ Editado Novembro 26, 2013 por eric123 Compartilhar este post Link para o post Compartilhar em outros sites
EduardoAugustoPHP 27 Denunciar post Postado Novembro 26, 2013 Heyy... no output não precisa passar os parâmetros?? $pdf->Output("arquivo.pdf","I"); Ou o D caso deseje fazer o download do arquivo?? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Novembro 26, 2013 Não, ambos os argumentos de FPDF::Output() são opcionais. Ao omiti-los a classe assume doc.pdf para o primeiro argumento e I para o segundo, fazendo com que o buffer seja enviado ao browser. Compartilhar este post Link para o post Compartilhar em outros sites
juniorbezerra 6 Denunciar post Postado Novembro 26, 2013 Cara já tive esse problema quando usava essa classe e resolvi com um ob_clean(); Veja: <?php //chamando a classe fpdf php . OBS: aponte para a pasta que está sua classe include "fpdf/fpdf.php"; //configurações iniciais $pdf = new FPDF('P','cm','A4'); $pdf = new FPDF(); $pdf->Open(); $pdf->AddPage(); //define a fonte utilizada para odocumento $pdf->SetFont("Arial",'', 12); //titulos de configuração do documento $pdf->SetAuthor("Titulo do arquivo"); $pdf->SetTitle("Titulo do arquivo"); $pdf->SetSubject("a"); $pdf->Header(); $cabecalho = 'Teste'; //exibe o cabecalho do documento $pdf->MultiCell(0,5,"$cabecalho",0, 'C'); //distancia do titulo da margem superior $pdf->Ln(6); //Titulo do documento $pdf->MultiCell(0,5,"Titulo do documento",0,'C'); //distancia do texto e do titulo do documento $pdf->Ln(6); //texto do documento $texto = 'texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto'; //gerar o texto no documento $pdf->MultiCell(0,5,"$texto",0, 'J'); ob_clean(); // Limpa o buffer de saída //cria o arquivo pdf e exibe no navegador $pdf->Output('teste.pdf','D'); //$pdf->Output(); exit; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Paulo de Tarso F. M. 24 Denunciar post Postado Novembro 27, 2013 Eu acho que um desses posts está duplicado, não? :sleep: :seta: http://forum.imasters.com.br/topic/512348-problema-no-fpdf-gerador-de-pdf/ :seta: http://forum.imasters.com.br/topic/444730-fpdf-error-some-data-has-already-been-output-cant-send-pdf-file/ Compartilhar este post Link para o post Compartilhar em outros sites
wsouza3 0 Denunciar post Postado Outubro 28, 2014 Me ajudou de mais a dica do Carlos Antoliv. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Outubro 29, 2014 (editado) Além do tópico ser antigo e apesar de ser funcional, a dica do Carlos Antoliv é apenas paliativa e deve ser evitada, uma vez que o problema é gerado por erros no código. Melhor corrigir os erros do que apenas evitar o seu output. Editado Outubro 29, 2014 por Gabriel Heming Compartilhar este post Link para o post Compartilhar em outros sites
Junior Oliveira 01 0 Denunciar post Postado Julho 29, 2015 Faz o seguinte, brother, insira: ob_start (); antes da linha: $pdf -> Output(); este comando serve para limpar o buffer. Rode o sistema. Muito bom meu querido, resolveu o meu problema a dias pensando... e nada. Compartilhar este post Link para o post Compartilhar em outros sites