Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá.
Tenho uma dúvida mas não sei se saberão me ajudar, tenho um E-commerce que faz o calculo de frete através de XML buscando no servidor dos Correios, como eu faço para quando o servidor dos Correios demorar de responder ou simplesmente tiver offline, ao invés de dar uma tela de erro, eu conseguir tratar esse retorno e redirecionar o cliente para um Outro Link alternativo.
Ou seja, caso demorar por exemplo mais de 10 segundos o retorno, ou quando simplesmente cair o servidor, conseguir redirecionar para uma página de contingência de uma tabela própria.
Abraços!
Fábio Nascimento!
Olá.
Eu estava fazendo testes, quando coloco uma URL do XML inválida, sempre dá erro na linha abaixo, e não consigo tratar o erro.
$xml = simplexml_load_file($url);
Estou com o mesmo problema dessa pessoa desse Link:
https://pt.stackoverflow.com/questions/330612/como-tratar-erros-em-caso-de-falha-no-simplexml-load-file-em-php
Eu já procurei algumas alternativas no site do PHP onde mostram formas de ignorar erros do xml mas nenhuma funcionou.
Para eu simular a queda do servidor eu coloco um Link quebrado no link do xml
Abraços!
Consegui não exibir o erro removendo da página:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);
Abraços!No PHP achei uma forma de desativar erros sem precisar remover as linhas:
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);
Basta colocar um @ na frente da função que se der erro não aparece na tela.
Abraços!
Olá. Um amigo meu me orientou a pegar alguma variável de retorno do XML que retorne com um valor fixo, e fazer uma verificação, se algo vier errado ou em branco, eu faço um IF e coloco o código alternativo, é interessante salvar Logs desses acontecimentos ou enviar por e-mail para ficarmos sabendo quando o retorno do XML deu algum erro até por questão de monitoramento.
Agora é só aguardar o servidor cair para ver se ficou bom.
Abraços!