Publicidade   
 você está aqui: phpbrasil.com    artigos    artigo  
 
:: novos artigos ::

:: recomendado ::

MYSQL & MSQL

Compre esse livro no Submarino.com.br

:: publicidade ::


:: novos scripts ::

:: elenco phpbrasil ::

fccd
Pontos: 10353

Visite a página de perfil de Éder BaumOs Erros de PHP que Você Não Viu Ainda
por Éder Baum
Lista de Categorias  |  Contribua um Novo Artigo  |  Entre em Contato Conosco

Neste artigo mostrarei alguns erros que não aparecem por padrão nas mensagens de erro do PHP, mas que podem ser as vezes potencialmente perigosos. Irei demonstrar como abilitar esses errors, e o motivo dos errors/alertas mais comuns.
Vote aqui!
Média de Votos Atual: 8.75
Total de Votos: 4
Nota:   

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.



<< Anterior 1 2 Próxima >>

 
Imprimir  |  Enviar para um Amigo


Comentários de Usuários

bom e pequeno
publicado por Felipe Cardoso Martins - 2005-08-19 16:08:48

olha cara, bom mesmo seu artigo pro pessoal que esta comecando para nao comecar a fazer erros, como eu uma vez pensei ?
a pra que $_POST e $_GET, funciona du mesmo jeito, uma linha a menos, ai vai e o servidor mudou o register_globals... mais qui raivaaaaa

hehe, a pena e que tive que apreender a tratar com os erros na marra, num conhecia essa funcao

Não é o contrário
publicado por Rodrigo Rodrigues - 2005-08-19 20:24:28

Legal o artigo mas acho que você trocou as bolas... rs
Antigamente o padrão do register_globals era ON e nas últimas versões vem como OFF, não seria assim?

Sem mais, Rodrigo.

RE:Não é o contrário
publicado por Éder Baum - 2005-08-20 02:36:58

Exato Rodrigo, acabei realmente trocando as bolas.

Era ON e agora é OFF

outro erro
publicado por Luiza Navarro - 2005-08-20 15:50:42

Ótimo artigo... mas como solucionar esse erro?
Notice: A session had already been started - ignoring session_start()

Não tem uma maneira de verificar se a sessao jah foi inciada?
=D

Session
publicado por iacques - 2005-08-23 00:51:28

Luiza, tente isto:

if (!isset($_SESSION)){
session_start();
}

Jacques

Muito bom!
publicado por BOZO Esse usuário pertence aos 10 usuários mais ativos do site - 2005-08-23 07:50:38

Muito bom o seu artigo, tb passei muita raiva em ter que mudar todos os meus sistemas por causa do $_POST $_GET, já estou tratando todos esse erros que apareceram nos scripts, o mais constante aqui foram de variaveis não definidas, por causa de não inserção de dados no banco, o que vou mudar agora!

Valeu!

Outra duvida
publicado por BOZO Esse usuário pertence aos 10 usuários mais ativos do site - 2005-08-23 08:47:40

reparei que no IE aparecem mais erros que no FireFox. existe alguma diferençar por causa do navegador?

É Véro
publicado por Julio Cesar Marques - 2005-08-23 09:31:01

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....

Cabeçalho
publicado por Éder Baum - 2005-08-23 12:51:29

leojurema, isto provavelmente ocorre pela diferença dos "HEADERS" enviados pela solicitação do navegador.

Muito Bom
publicado por Paulo Eduardo Santos - 2005-09-02 20:25:33

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!!!

Fiquei bolado!!!
publicado por João Seabra - 2005-09-04 14:46:29

Éder,

Fiquei bolado agora, mas valeu pela dica!!

Abraços de seu colega de Barreiras!
Seabra

Bom
publicado por Diego Hellas - 2005-09-05 15:39:45

Legal, pequero, simples, legalmesmo.

hmm, politicamente incorreto? Talvez ...
publicado por Marlon Brandão de Sousa - 2005-09-09 12:20:44

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

legal msm
publicado por charutto - 2005-09-15 09:47:30

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!!!

Ufá aliviado
publicado por Rafael Patricio Salomão - 2005-10-12 15:25:28

Coloquei nos meus script e nada apareceu mas foi bom saber valeu ai!!!!

Legal
publicado por Itiberê E. Souza Mattos - 2005-11-10 07:50:02

Valeu pela dica, agora toda vez que eu tiver um escipt ele não fucniconar, vou abilitar essa função, provavelmemte ela me ajudar.

Publique os seus Comentários

Nome:
Email:
Título:
Comentário:

NOTA: Cadastre-se no site para poder publicar comentários.

 
webmaster: João Prado Maia   © 2000 - 2005 phpbrasil.com
Gerado em 0.266 segundos