Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jsaiao

Classe DOMPDF Depois de atualização para PHP 5.3.23 (correção)

Recommended Posts

Caros amigos do Imasters, não sei se já existe algum tópico para isso, procurei e não achei. Não sou Expert em PHP ou outra linguagem, sou sim muito curioso, e aprendiz.

 

Em minha hospedagem usava uma versão do PHP desatualizada, em meu sistema usava a classe DOMPDF para gerar uma ficha de cadastro, feliz da vida e tudo funcionando até... atualizar o servidor para PHP 5.3.23, aí começou a dar um aviso:

 

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sindalco/public_html/industria/lib/dompdf/lib/class.pdf.php on line 4672

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sindalco/public_html/industria/lib/dompdf/lib/class.pdf.php on line 4677
Unable to stream pdf: headers already sent

 

Após pesquisar bastante descobri o significado do aviso, que o PHP apenas está avisando que você está tentando utilizar uma função "obsoleta" ou seja pela previsão futura não deverá funcionar, mas vamos a solução:

 

No arquivo class.pdf.php localizado em seu servidor dentro da pasta:

dompdf/lib/class.pdf.php

 

Baixe o arquivo para editá-lo em seu programa preferido eu usei o ADw:

 

Na primeira string digite:

 

<?php
error_reporting(0)

?>

 

#0 significa para não imprimir o erro na tela e continuar

 

Salve o arquivo e substitua pelo do servidor, atualiza a página e tente usar novamente.

 

Espero que possa ajudar alguém com alguém me ajudou!

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Superinteressante! :clap:

 

Parabéns por ter achado a solução desta classe, vai ajudar um bocado a comunidade. :worship:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ocultar erros é jogar lixo debaixo do tapete. É a pior prática de programação, sem dúvidas.

 

Essa classe já possui uma versão compatível com o PHP 5.3+, que não usa essa função depreciada.

 

Error reporting 0, só em produção, quando o software já foi homologado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ocultar erros é jogar lixo debaixo do tapete. É a pior prática de programação, sem dúvidas.

 

Essa classe já possui uma versão compatível com o PHP 5.3+, que não usa essa função depreciada.

 

Error reporting 0, só em produção, quando o software já foi homologado.

 

:no: Caros amigos como mencionado no início do post tive este problema pois sou INICIANTE em programação, não tenho base de conhecimento para a correção só consegui resolver este problema, mas agradeço por me informar que existe uma classe compatível.

A intenção do POST foi simplesmente compartilhar uma resolução de problema que aconteceu comigo, acho que a ideia do FÓRUM, vem a ser o compartilhamento de conhecimento de soluções de dúvidas, pensando nisso creio que tenha alguém como eu que está iniciando e possa se equivocar não vendo a versão da classe. Creio que o ideal seria dar a dica de que posso corrigir meu problema de verdade e não "jogar o lixo embaixo do tapete" , fica a dica para os que tem um conhecimento maior e queira compartilhar sem arrogância como os três amigos que perderam tempo e acessaram o POST para satirizar o conteúdo. Algo me diz que não é o lugar para vocês. :no:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro de tudo, não xingue ou seja grosso com ninguém (mesmo que não esteja no tópico, você sabe bem do que estou falando....), tenho certeza de que você não teve má fé, mas é esse o problema do PHP, soluções são publicadas e apenas funcionam, mas muita das vezes vai dar problema depois, mesmo que não haja má fé do autor. Se deixar passar, outros desenvolvedores vão ver o tópico depois e aprender uma má prática.

 

O error_reporting, é a função para controlar erros, quando você passa 0 como argumento, você está ocultando todos os erros, ou seja, se você cometer qualquer erro, ele não vai ser exibido, e daí você estará sim, jogando lixo debaixo do tapete, escondendo a caca.

 

Fazendo uma analogia:

você quebrou uma mesa, e simplesmente usou uma cola para esconder o fato, de agora, a mesa parece perfeita, você consegue colocar guardanapos e pratos perfeitamente, mas em um momento você necessita colocar uma panela em cima da mesa, e lá se vai a mesa, quebrou....

 

A solução é simples e eu disse no post anterior: usar a classe compatível.

 

:seta: Um erro de código deve ser corrigido, nunca escondido.

 

Espero que tenha entendido o que é o error_reporting e porque a solução apresentada no tópico é problemática. E em momento nenhum entrei no tópico sendo sarcástico ou arrogante, veja bem antes de generalizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro de tudo, não xingue ou seja grosso com ninguém (mesmo que não esteja no tópico, você sabe bem do que estou falando....), tenho certeza de que você não teve má fé, mas é esse o problema do PHP, soluções são publicadas e apenas funcionam, mas muita das vezes vai dar problema depois, mesmo que não haja má fé do autor. Se deixar passar, outros desenvolvedores vão ver o tópico depois e aprender uma má prática.

 

O error_reporting, é a função para controlar erros, quando você passa 0 como argumento, você está ocultando todos os erros, ou seja, se você cometer qualquer erro, ele não vai ser exibido, e daí você estará sim, jogando lixo debaixo do tapete, escondendo a caca.

 

Fazendo uma analogia:

você quebrou uma mesa, e simplesmente usou uma cola para esconder o fato, de agora, a mesa parece perfeita, você consegue colocar guardanapos e pratos perfeitamente, mas em um momento você necessita colocar uma panela em cima da mesa, e lá se vai a mesa, quebrou....

 

A solução é simples e eu disse no post anterior: usar a classe compatível.

 

:seta: Um erro de código deve ser corrigido, nunca escondido.

 

Espero que tenha entendido o que é o error_reporting e porque a solução apresentada no tópico é problemática. E em momento nenhum entrei no tópico sendo sarcástico ou arrogante, veja bem antes de generalizar.

 

Caro amigo como mencionei sou iniciante, ou seja o que vir de crítica é aceito de coração aberto, porém interpretei o seu comentário como sendo sarcástico como os dos outros colegas, sinceramente não deveria nem ter publicado, como você mesmo disse não houve má fé na criação do post, e o conteúdo não foi desenvolvido por mim nem criado do zero, nunca vou abrir um tópico para tirar uma dúvida e ficar esperando a boa vontade de alguém ajudar nem todas as pessoas são assim, então fui pesquisar de uma nova forma na web e achei este gatinho entendendo bem o conteúdo encontrado apliquei em meu código e a partir daí, voltou a funcionar sanando o meu problema. Gostaria de me retratar em um tópico embora tendo ofendido você por MP, para saber que não fiz mal intencionado o post. Agradeço sua manifestação de resposta, e vamos lá estudar e compartilhar afinal estamos aqui para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.