Os Erros de PHP que Você Não Viu Ainda
Notice: Undefined variable: teste in C:\Web\index.php on line 19
O mais popular de todos. É quando você usa uma variável que não foi definida tipo:
É como se você conversa-se com joão sem ele existir. Este erro é potencialmente perigoso, pois algum engraçadinho pode aproveitar-se e inserir valores de váriaveis no seu script através dom modos $_GET ou $_POST. Então simples, antes usar uma variável ela deve existir tipo:
Notice: Use of undefined constant CONSTANTE - assumed 'CONSTANTE' in C:\Web\index.php on line 19
Igual ao 1º erro descrito, porém aqui ao invés de uma variável usamos uma constante que não foi definida.
Notice: Use of undefined constant one - assumed 'one' in C:\Web\index.php on line 19
É quando você chama um array elemento de um array assoociativo e não põem aspas no seu indexador, do tipo:
Isto ocorre pois o PHP pensa que one seria uma constante que existe em seu script, então o correto seria assim:
Percebeu as aspas no final?
Notice: Undefined index: pages in C:\Web\index.php on line 19
É quando você chama um index que não existe em um array, tipo:
Notice: Undefined offset: 3 in C:\Web\index.php on line 19
Isto é porque você chamou um membro de um array que não foi definido, tipo:
Percebeu? Ahhh em caso de arrays onde a chave é numérica não presisa aspas :+D
Uhhhh, mas existem muitos outros que você vai ver no decorrer da coisa. Mas pra finalizar:
- Não se desespere pelo menos 90% dos scripts disponíveis pela net tem esses erros, então não estamos sozinhos neste barco.
- Dê uma olhada nesta página do PHP, que fala um pouco sobre a função error_reporting: http://br.php.net/manual/en/function.error-reporting.php
- Pra deixar você mais desesperado ainda caso use a classe Smarty, insira esta linha de código: $smarty->debugging = 1;
- Use em todos seus scripts de agora em diante a linha de código error_reporting(E_ALL), ou sete isto no php.ini, assim seus scripts de agora em diante sairão com menos erros
Espero que tenha ajudado!
O mais popular de todos. É quando você usa uma variável que não foi definida tipo:
<?php echo $teste; ?>
É como se você conversa-se com joão sem ele existir. Este erro é potencialmente perigoso, pois algum engraçadinho pode aproveitar-se e inserir valores de váriaveis no seu script através dom modos $_GET ou $_POST. Então simples, antes usar uma variável ela deve existir tipo:
<?php $teste = “Olá Mundo”; echo $teste; ?>
Notice: Use of undefined constant CONSTANTE - assumed 'CONSTANTE' in C:\Web\index.php on line 19
Igual ao 1º erro descrito, porém aqui ao invés de uma variável usamos uma constante que não foi definida.
Notice: Use of undefined constant one - assumed 'one' in C:\Web\index.php on line 19
É quando você chama um array elemento de um array assoociativo e não põem aspas no seu indexador, do tipo:
<?php $array = array('one' => 1, 'two' => 2); echo $array[one]; ?>
Isto ocorre pois o PHP pensa que one seria uma constante que existe em seu script, então o correto seria assim:
<?php $array = array('one' => 1, 'two' => 2); echo $array[‘one’]; ?>
Percebeu as aspas no final?
Notice: Undefined index: pages in C:\Web\index.php on line 19
É quando você chama um index que não existe em um array, tipo:
<?php $array = array('one' => 1, 'two' => 2); echo $array[‘four’]; ?>
Notice: Undefined offset: 3 in C:\Web\index.php on line 19
Isto é porque você chamou um membro de um array que não foi definido, tipo:
<?php $array = array('one' , 'two'); echo $array[3]; ?>
Percebeu? Ahhh em caso de arrays onde a chave é numérica não presisa aspas :+D
Uhhhh, mas existem muitos outros que você vai ver no decorrer da coisa. Mas pra finalizar:
- Não se desespere pelo menos 90% dos scripts disponíveis pela net tem esses erros, então não estamos sozinhos neste barco.
- Dê uma olhada nesta página do PHP, que fala um pouco sobre a função error_reporting: http://br.php.net/manual/en/function.error-reporting.php
- Pra deixar você mais desesperado ainda caso use a classe Smarty, insira esta linha de código: $smarty->debugging = 1;
- Use em todos seus scripts de agora em diante a linha de código error_reporting(E_ALL), ou sete isto no php.ini, assim seus scripts de agora em diante sairão com menos erros
Espero que tenha ajudado!
Páginas:
1
2
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
(~19 anos atrás)
Coloquei nos meus script e nada apareceu mas foi bom saber valeu ai!!!!
12/10/2005 3:25pm
(~19 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
(~19 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
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
(~19 anos atrás)
Éder,
Fiquei bolado agora, mas valeu pela dica!!
Abraços de seu colega de Barreiras!
Seabra
Fiquei bolado agora, mas valeu pela dica!!
Abraços de seu colega de Barreiras!
Seabra
04/09/2005 2:46pm
(~19 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!!!
Valeu!!!
02/09/2005 8:25pm
(~19 anos atrás)
leojurema, isto provavelmente ocorre pela diferença dos "HEADERS" enviados pela solicitação do navegador.
23/08/2005 12:51pm
(~19 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....
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
(~19 anos atrás)
reparei que no IE aparecem mais erros que no FireFox. existe alguma diferençar por causa do navegador?
23/08/2005 8:47am
(~19 anos atrás)