+1

Os Erros de PHP que Você Não Viu Ainda

criado por Éder Baum em 19/08/2005 9:19am
O PHP em si é uma linguagem muito “boazinha” e condizente com certos desleixos de nossa parte. Mas às vezes surgem certas mudanças pequeninas no padrão PHP que nos deixam de cabelo em pé por nosso próprio desleixo.

Tivemos a pouco tempo um exemplo disso quando register_globals passou a ser por padrão ON. Até hoje muitíssimos programas só rodam com register_globals em OFF, e não são poucos.

Mas o ponto que eu quero chegar é na opção do php.ini “error_reporting”. Mas não vou falar propriamente dela operando no arquivo ini, até porque não gosto de ter que depender dele, pois nem sempre podemos alterá-lo dependendo do servidor que temos em mão.

Neste parâmetro são colocados quais os erros do script serão reportados. Nas próximas linhas deste artigo você pode levar um susto.

Pegue um Script seu, de preferência daqueles grandões e na primeira linha de código ponha o seguinte:

<?php
error_reporting(E_ALL);
?>

Agora rode seu script PHP.

Se nada de diferente aconteceu, parabéns seu script está perfeito e você pode até se quiser esquecer este artigo. Caso ocorreu vários erros ou alertas, comece a chorar pois de agora em diante vai doer.

Com esta linha de código você disse ao PHP para mostrar todos os erros que aparecem no seu script, a maioria que você nem sabia que existiam. Bom, depois de analisar um pouco você pode pensar: “Ahhh, que se dane, vou deixar isso assim mesmo”. Concordo que seria um parto você ter que re-escrever seu script com milhares de linhas de código só pra ele ficar “bonitinho”, mas e seus scripts de agora em diante?

Já levei muita paulada na cabeça por não observar uma frase que um amigo meu sempre diz “Se tiver que fazer faça!”.

Imagine se um dia os doidões da Zend resolverem colocar error_reporting(E_ALL); como default assim como ocorreu algo parecido com register_globals? Ai o bicho pega, e quem vai pagar a conta é com você, sem falar que agora sempre vai ter um martelo na sua cabeça dizendo que seu script pode ter problemas graves.

Independente disso vou descrever na próxima página alguns dos erros mais comuns que você vai ver no seu script.

Comentários:

Mostrando 1 - 10 de 16 comentários
Valeu pela dica, agora toda vez que eu tiver um escipt ele não fucniconar, vou abilitar essa função, provavelmemte ela me ajudar.
10/11/2005 7:50am (~18 anos atrás)

Coloquei nos meus script e nada apareceu mas foi bom saber valeu ai!!!!
12/10/2005 3:25pm (~18 anos atrás)

Cara mto bom voce ter posto isso, sempre achei muito desleixo nao receber os dados dos formularios com _POST ou _REQUEST, para mim isso eh coisa de subprogramadores, pois deixa o codigo muito instavel e muito inseguro! alias, onde estavam com a cabeca ao fazer variaveis globais!!!
15/09/2005 9:47am (~18 anos atrás)

Esse artigo é realmente ótimo!
Eu só queria aqui deixar uma minha opinião, muito pessoal: particularmente não me esquento muito com alguns tipos de notices, principalmente pelas notices de variáveis indefinidas. Se quizer usar isset() para checar se uma variável está definida tudo bem, qual o problema? ... E às vezes em alguns sistemas eu preciso mesmo checar isso, então algumas notices dessas eu costumo ignorar.
Uma outra coisa, que eu penso e que "o manual do php também pensa", é que nunca, nunca deixem o report de erros ligado no servidor de produção! Sertifiquem-se de que não há erros e depois desliguem o error reporting, não podemos prever quando o php irá reportar um erro, às vezes testamos tudo o que o sistema tem, entramos em todas as páginas, testamos tudo mas ... esquecemos de ver uma coisinha, uma paginasinha, uma opçãozinha, e vamos embora todos feliizes até que alguém entra lá onde esquecemos de testar e então o php reporta maravilhoisamente o erro, o tipo do erro, a linha do erro, talvez o nome de uma variável ... e zaz! Alguém de fora ficou sabendo várias coisas sobre nosso script!
Então eu sempre deixo o error report ligado, testo, corrijo erros, e depois quando coloco em produção deixo desligado. Se der um bug alguém vai me contar, me apontar o nome do arquivo php que não foi exibido, ou que tá com o bug, aí eu ligo o error reporting, corrijo e torno a desligar, dessa forma o erro foi detectado mas não mostrou ao mundo nenhuma informação do meu script.
Valeu
Marlon
09/09/2005 12:20pm (~18 anos atrás)

Diego Hellas disse:
Legal, pequero, simples, legalmesmo.
05/09/2005 3:39pm (~18 anos atrás)

João Seabra disse:
Éder,

Fiquei bolado agora, mas valeu pela dica!!

Abraços de seu colega de Barreiras!
Seabra
04/09/2005 2:46pm (~18 anos atrás)

Muito bom esse toque para os desenvolvedores. É de pessoas como vc´s que enviam artigos, tutoriais e outros, que o mundo do software livre precisa para se expandir ainda mais.

Valeu!!!
02/09/2005 8:25pm (~18 anos atrás)

Éder Baum disse:
leojurema, isto provavelmente ocorre pela diferença dos "HEADERS" enviados pela solicitação do navegador.
23/08/2005 12:51pm (~18 anos atrás)

Cara eu sempre uso e recomendo
o uso de error_reporting(E_ALL) por padrão em todos os casos pois recebendo os erros qdo vc está desenv é mais facil corrigir....
23/08/2005 9:31am (~18 anos atrás)

BOZO disse:
reparei que no IE aparecem mais erros que no FireFox. existe alguma diferençar por causa do navegador?
23/08/2005 8:47am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)