Erro no FPDF quando o HostGator atualiza o PHP do meu ambiente de produção para a versão 7.4 - RESOLVIDO

Olá pessoal!

Quando o HostGator atualiza o meu ambiente para o PHP 7.4 uma aplicação que eu tenho do tipo _blank e que gera um relatório, fazendo uso do FPDF, quebra, dando esse erro:

TCPDF ERROR : Some data has already been output , can’t send PDF file

Aí eu tenho que ficar alterando a versão do PHP para a 7.1 (indesejável).

Alguém já passou por essa pane?

Bom dia,

A questão é que o Scriptcase está usando o PHP 7.3. Se quiseres usar o PHP 7.4 vai acontecer esse tipo de situação. Se o teu provedor de hospedagem tiver a versão 7.3 do PHP vai resolver. Ou então descubra quais alterações precisam ser feitas na tua blank pra poder rodar com o PHP 7.4

1 Curtida

Obrigado Kleyber pelo interesse em ajudar!

Veja só, eu já estou fazendo isso, alterando a versão do PHP no HostGator. Aí ele volta a funcionar, mas o HostGator está forçando a atualização do PHP, então, do nada, ele atualiza a versão para 7.4 no meu ambiente de produção e a minha aplicação quebra.

Eu estou exatamente tentando descobrir o que eu devo alterar na minha aplicação para evitar a interrupção da aplicação.

Agradeço quem puder ajudar nesse sentido.

Já vi nesse forum pessoas que resolveram um problema parecido, removendo os espaços antes do <?php>, mas não identifiquei nenhum desses espaços em minha aplicação.

Continuo precisando de ajuda!

1 Curtida

Veja se este link te ajuda: PHP 7.3 descontinuado pelo Hostgator

1 Curtida

Kleyber, eu tinha visto este post e havia feito a alteração da primeira parte, mas não encontrei a linha de código abaixo…

NO ARQUIVO -> prod\third\tcpdf\include\tcpdf_fonts.php -> linha 318

de: $trns[] = ord($t{$i});

para: $trns[] = ord($t[$i]);

Ou seja, eu atualizei primeira parte (ref ao post) e verifiquei o sistema, mas nada mudou. A aplicação de geração do .pdf continuava quebrada…

Continuo na luta para sanar essa pane…

Faz um teste… no onapplicationinit coloca:
ob_start();

e no onvalidatesuccess
ob_end_flush();

Boa tarde Jair!

Eu estou utilizando um _Blank para a geração do PDF, logo não tem os eventos onapplicationinit e onvalidatesuccess.

Att,

só colocar o ob_start no inicio e o ob_end_flush no final, são comandos do php

1 Curtida

Jair, deu certo a sua sugestão:

ob_start(); - No início; e
ob_end_clean(); antes do $pdf->Output();

Agora o sistema está utilizando no HostGator a versão do PHP 7.4, apesar de estarmos desenvolvendo na versão PHP 7.3 no SC. Vamos continuar aguardando a atualização do ambiente de desenvolvimento.

Obrigado a todos pela ajuda!

2 Curtidas