Suporte a Clientes

Introdução:

   As mensagens de erro geradas pelo PHP podem expor informações sensíveis a usuários mal intencionados, ou mesmo, alterar a estética de uma página com mensagens técnicas que vem a trazer uma imagem um pouco rude e anti-profissional do cliente. Por isto, a opção de mostrar estas mensagens é bloqueada.

Tratando os erros:

   Você pode tratar os erros utilizando adicionando o seguinte código em seu script PHP:

<?php
// Desativa todos os erros gerenciados pelo PHP:
error_reporting ( 0);

// Função para gerenciamento de erros:
function myErrorHandler ( $errno, $errstr, $errfile, $errline)
{
  switch ( $errno)
  {
    case E_FATAL:
      echo "<b>Erro fatal</b> $errstr ($errfile:$errline)<br>\n";
      exit ( 1);
      break;
    case E_ERROR:
      echo "<b>Erro</b> $errstr ($errfile:$errline)<br>\n";
      break;
    case E_WARNING:
      echo "<b>Aviso</b> $errstr ($errfile:$errline)<br>\n";
      break;
    default:
      echo "Erro de tipo desconhecido ($errno): $errstr ($errfile:$errline)<br>\n";
      break;
  }
}

// Captura função de tratamento de erros:
$old_error_handler = set_error_handler ( "myErrorHandler");
?>

   A partir deste ponto, quaisquer erro que ocorrer na execução do script (exceto erros de sintaxe e erros fatais), será gerenciada pela função myErrorHandler(), e mostrada conforme o seu tipo.

   Você também tem outra opção, que é mais aconselhável, mas mais trabalhosa. Você pode utilizar verificação sempre que executar um comando, e em caso de falha, pode mostrar uma mensagem amigável para o contexto. Por exemplo, para uma conexão ao banco de dados, podes utilizar:

<?php
// Acessa o banco de dados MySQL:
$sqlid = mysql_connect ( "servidor", "usuario", "senha");
?>

   Caso este comando falhe, nenhuma mensagem será mostrada, e a conexão não será concluída, causando assim erros consecutivos quando houver acesso ao banco que dependa do resultado desta ação. Então, você pode utilizar um tratamento mais adequado, verificando se a conexão ocorreu com sucesso:

<?php
// Acessa o banco de dados MySQL:
if ( ! $sqlid = @mysql_connect ( "servidor", "usuario", "senha"))
{
  echo "A conexão ao banco de dados falhou. Favor tentar novamente em breve.";
  exit ();
}
?>

   Note que o comando mysql_connect foi precedido pelo operador @. Este operador evita que, caso ocorra um erro na execução do comando, seja exibido mesmo quando a configuração do servidor permita. Isto faz com que seu script execute de forma amigável em quaisquer servidor.

   Você pode encontrar mais informações sobre tratamento de erro no manual do PHP.

Via-RS © 1995-2005 - Todos os direitos reservados
PROCERGS - Governo do Estado do RS