Ir para conteúdo
Fórum Script Brasil
  • 0

Tratamento De Erros


Gutto

Pergunta

estou com esse script:

<?php 
function error($numero,$texto){ 
$ddf = fopen('error.log','a'); 
fwrite($ddf,"[".date("r")."] Error $numero:$texto\r\n"); 
fclose($ddf); 
} 
set_error_handler('error'); 
?>
Ele realmente grava quando ocorre algum erro, mas coloquei alguns ifs pra checar o valor enviado via $_GET.
if ($_GET["action"] == "ConfaddAtividade")
O problema é que ele considera que todos esses ifs são erros, sendo que os erros na verdade são apenas as últimas linhas, que eu mandei incluir arquivos que não existem só pra testar o script:
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  Emp
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  Cidade
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  action
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  action
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  action
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  action
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  action
[Sat, 24 Feb 2007 13:02:47 -0300] Error 8:Undefined index:  action
[Sat, 24 Feb 2007 13:02:47 -0300] Error 2:main(adfas.php) [<a href='function.main'>function.main</a>]: failed to open stream: No such file or directory
[Sat, 24 Feb 2007 13:02:47 -0300] Error 2:main(adfas.php) [<a href='function.main'>function.main</a>]: failed to open stream: No such file or directory

porque ele considera if ($_GET["action"]) como erro?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Se você mandar o PHP exibir os erros... verá que sempre que mandar testar um GET/POST e o mesmo não estiver declarado, vai retornar um aviso (notice)...

<?php
error_reporting(E_ALL); 

if ($_GET["action"] == "a"){
echo "OI";
}else{
echo "tchau";
}
?>

No exemplo acima se você chamar o arquivo sem ter a querystring (arquivo.php?action=) ele vai retornar o seguinte:

Notice: Undefined index: action in ...

Mas o if/else vai funcionar igual, mesmo porque vai percorrer todos os testes e vai retornar o "else".

Link para o comentário
Compartilhar em outros sites

  • 0

Usando esse script que postei, quero saber se houve algum erro durante a execução dos scripts, e ocultar, se houver.

Pesquisando no google encontrei outro mais completo, e complexo.

Ele grava os erros ocorridos em um txt, em seguida me envia um email informando que houve um erro.

Qual a melhor alternativa para tratar os erros?

Outra coisa, já que ele sempre irá retornar o notice, como desabilito isso, mas continuo detectando os erros? Porque pelo que entendi sempre vai ficar dando esse aviso, já que no site todo eu uso querystrings... aí toda hora iria receber emails avisando que teve um 'erro', o arquivo .txt ficaria sendo gravado toda hora com esse aviso...

Um erro que constantemente surge e depois para de exibir é sobre max_connections, uma hora surge, outra hora fica normal, e quando ele surge detona o visual do site, esse tipo de erro é que eu quero ocultar e receber notificação via email.

Editado por Gutto
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...