Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera tudo bem? Seguinte estou com um problema, desenvolvi meu sistema e utilizei a classe DOMPDF, no localhost ele estava funcionando normalmente mas quando coloquei hospedei ele está dando erro, não está gerando os pdfs. O seguinte erro era apresentado:
Unable to stream pdf: headers already sent entrei no forum e encontrei a seguinte resposta Replace line 3105 of this file: dompdf/lib/class.pdf.php
if ( headers_sent()) {
die("Unable to stream pdf: headers already sent");
}
With
$output = ob_get_clean();
if ( headers_sent()) {
echo $output; }
porem quando fiz isto minha aplicação respondeu da seguinte forma:
Warning: Cannot modify header information - headers already sent by (output started at www/sistema/conexao.inc:1) in www/sistema/libraries/dompdf/lib/class.pdf.php on line 3117
Warning: Cannot modify header information - headers already sent by (output started at www/sistema/conexao.inc:1) in www/sistema/libraries/dompdf/lib/class.pdf.php on line 3118
Warning: Cannot modify header information - headers already sent by (output started at www/sistema/conexao.inc:1) in www/sistema/libraries/dompdf/lib/class.pdf.php on line 3121
Warning: Cannot modify header information - headers already sent by (output started at www/sistema/conexao.inc:1) in www/sistema/libraries/dompdf/lib/class.pdf.php on line 3135
outros erros de Cannot modify .... já eram mostrados na minha aplicação, com alguma modificação no codigo consegui resolver, mas na classe a mesma solução que apliquei em outros arquivos não dá certo. Já conferi a questão de espaços e está tudo ok. Alguém sabe o que pode estar causando essa bugagem toda? Obrigado e grande abraço
Ta entendi, o que não entendo é por que uma classe como a DOMPDF dá esses erros... Segue as linhas e seus respectivos erros arquivo class.pdf.php do dompdf dentro da pasta lib:
linha 3117 header("Cache-Control: private");
3118 header("Content-type: application/pdf");
3121 header("Content-Length: " . mb_strlen($tmp, '8bit'));
3135 header("Content-Disposition: $attachment; filename=". $encodedfallbackfilename ."; filename*=UTF-8''$encodedfilename");No seu código (não da classe), você está dando algum ECHO, PRINT, ou está aparecendo algum erro antes de usar a classe ?
Não, nada disso, chamo a classes, faço a conexao ao banco, gero a consulta, crio a variavel q carrega o html e então imprimo o arquivo. No meu localhost funciona normal, no servidor que ele da erro em tudo que é header.
Não necessariamente por seu localhost não está exibindo erro, quer dizer que ta tudo bem. Ative as mensagens de erro no localhost para ver se ta aparecendo a mesma coisa
Display_errors = on
esta funcionando normal, há mais alguma outra linha para mostrar erros usando o xampp que tenho que alterar?
Coloque no seu script error_reporting(E_ALL);
Não acusou nenhum erro :/
Apenas uma notificação do Id que estou repassando via URL e pegando atravez de um $_GET[id];
acredito que isto não esteja causando estes erros...
Cara, sendo direto:
O php está tentando enviar um cabeçalho HTTP para o navegador do cliente, sendo que esses cabeçalhos já foram enviados para o cliente.
Isso pode:
Mas isso não pode: Assim que algo é enviado para o navegador, seja HTML, echo, print, mensagem de erro, etc. Não é possível usar o header.No seu caso, você tem de mandar as linha 3117, 3118, 3121, 3135 para vermos o que tem de errado nela. Lembre de dizer qual é a linha que está com erro no meio do trecho de código postado por você