Ir para conteúdo
Fábio BN

Como tratar Retorno de XML com erro do servidor?

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui não exibir o erro removendo da página:

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);

 

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por DANIEL ALVES BARBOSA
      Na verdade não é uma dúvida e sim um exemplo de código que fiz para capturar os atributos do XML e ler com php.
       
      <?xml version="1.0" encoding="utf-8"?> <FDBS Version="15"> <Manager UpdatesRegistry="True"> <TableList> <Table Name="FDQuery2" SourceName="ORCAMENTO_ITENS" SourceID="1" TabID="0" EnforceConstraints="False" MinimumCapacity="50"> <ColumnList> <Column Name="ID" SourceName="ID" SourceID="1" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OInKey="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID"/> <Column Name="ITEM" SourceName="ITEM" SourceID="2" DataType="Int32" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ITEM"/> <Column Name="ID_PRODUTO" SourceName="ID_PRODUTO" SourceID="3" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_PRODUTO"/> <Column Name="ID_ORCAMENTO" SourceName="ID_ORCAMENTO" SourceID="4" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_ORCAMENTO"/> <Column Name="QUANTIDADE" SourceName="QUANTIDADE" SourceID="5" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="QUANTIDADE" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_UNITARIO" SourceName="VALOR_UNITARIO" SourceID="6" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_UNITARIO" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_CUSTO" SourceName="VALOR_CUSTO" SourceID="7" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_CUSTO" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_PRODUTOS" SourceName="VALOR_PRODUTOS" SourceID="8" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_PRODUTOS" SourcePrecision="18" SourceScale="6"/> <Column Name="TOTAL_ITEM" SourceName="TOTAL_ITEM" SourceID="9" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="TOTAL_ITEM" SourcePrecision="18" SourceScale="6"/> <Column Name="DESCONTO" SourceName="DESCONTO" SourceID="10" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESCONTO" SourcePrecision="18" SourceScale="6"/> <Column Name="ACRESCIMO" SourceName="ACRESCIMO" SourceID="11" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ACRESCIMO" SourcePrecision="18" SourceScale="6"/> <Column Name="ACRESCIMO_RATEIO" SourceName="ACRESCIMO_RATEIO" SourceID="12" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ACRESCIMO_RATEIO" SourcePrecision="18" SourceScale="6"/> <Column Name="DESCONTO_RATEIO" SourceName="DESCONTO_RATEIO" SourceID="13" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESCONTO_RATEIO" SourcePrecision="18" SourceScale="6"/> <Column Name="CANCELADO" SourceName="CANCELADO" SourceID="14" DataType="AnsiString" Size="1" Searchable="True" AllowNull="True" FixedLen="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="CANCELADO" SourceSize="1"/> <Column Name="MOVIMENTA_ESTOQUE" SourceName="MOVIMENTA_ESTOQUE" SourceID="15" DataType="AnsiString" Size="1" Searchable="True" AllowNull="True" FixedLen="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="MOVIMENTA_ESTOQUE" SourceSize="1"/> <Column Name="DESC_ACRES" SourceName="DESC_ACRES" SourceID="16" DataType="AnsiString" Size="15" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESC_ACRES" SourceSize="15"/> <Column Name="ID_GRADE_ITENS" SourceName="ID_GRADE_ITENS" SourceID="17" DataType="Int32" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_GRADE_ITENS"/> </ColumnList> <ConstraintList/> <ViewList/> <RowList> <Row RowID="0"> <Original ID="1" ITEM="1" ID_PRODUTO="1" ID_ORCAMENTO="1" QUANTIDADE="1" VALOR_UNITARIO="2.5" VALOR_CUSTO="0" VALOR_PRODUTOS="2.5" TOTAL_ITEM="2.5" DESCONTO="0" ACRESCIMO="0" ACRESCIMO_RATEIO="0" DESCONTO_RATEIO="0" CANCELADO="N" MOVIMENTA_ESTOQUE="N" DESC_ACRES=""/> </Row> <Row RowID="1"> <Original ID="2" ITEM="1" ID_PRODUTO="1" ID_ORCAMENTO="2" QUANTIDADE="1" VALOR_UNITARIO="2.5" VALOR_CUSTO="0" VALOR_PRODUTOS="2.5" TOTAL_ITEM="2.5" DESCONTO="0" ACRESCIMO="0" ACRESCIMO_RATEIO="0" DESCONTO_RATEIO="0" CANCELADO="N" MOVIMENTA_ESTOQUE="N" DESC_ACRES=""/> </Row> </RowList> </Table> </TableList> <RelationList/> <UpdatesJournal> <Changes/> </UpdatesJournal> </Manager> </FDBS>  
      Arquivo php
       
      <?php $xml = simplexml_load_file('uploads/teste3.xml'); foreach ($xml->children()->children()->children()->children() as $node) { foreach ($node as $value) { foreach ($value as $value2) { $id2 = "NULL"; $item2= $value2['ITEM']; $id_produto2 = $value2['ID_PRODUTO']; $id_orcamento2 = $value2['ID_ORCAMENTO']; $id_quantidade2 = $value2['QUANTIDADE']; $valor_unitario2 = $value2['VALOR_UNITARIO']; $valor_custo2 = $value2['VALOR_CUSTO']; $valor_produtos2 = $value2['VALOR_PRODUTOS']; $total_item2 = $value2['TOTAL_ITEM']; $desconto2 = $value2['DESCONTO']; $acrescimo2 = $value2['ACRESCIMO']; $acrescimo_rateio = $value2['ACRESCIMO_RATEIO']; $desconto_rateio = $value2['DESCONTO_RATEIO']; $cancelado2 = $value2['CANCELADO']; $cancelado2 = "'$cancelado2'"; $movimenta_estoque2 = $value2['MOVIMENTA_ESTOQUE']; $movimenta_estoque2 = "'$movimenta_estoque2'"; $desconto_acres = "NULL"; $id_grade_itens = "NULL"; echo $id2."<br>".$item2."<br>".$id_produto2."<br>".$id_orcamento2."<br>".$id_quantidade2."<br>".$valor_unitario2."<br>... etc"."<br>"; } } }  
    • Por shacapell
      Olá pessoal!
      Entendo um pouco de html e tenho um blog em xml, então preciso da ajuda de vocês.
      Eu queria tirar essa função de slide de posts e colocar uma imagem de fundo do mesmo tamanho e um texto com link por cima. Vejam > www.babadeanimais.net
       
      Outra coisinha, nos posts e páginas está configurado para a primeira imagem ficar no topo ocupando todo o espaço. Queria tirar isso, mas nem sei onde está no código.
       
      #main-slider .slick-prev,.main-gallery .slick-prev,#main-slider .slick-next,.main-gallery .slick-next,.related-stuff .slick-prev,.related-stuff .slick-next{font-size:25px;color:#000;display:block;text-align:center;background:#fff;outline:0;padding:0;width:35px;height:50px;position:absolute;top:50%;margin-top:-15px;cursor:pointer;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease} button.slick-nav.slick-prev i{color:#252525} button.slick-nav.slick-next i{color:#252525} span.feat-cat a{color:#FFF;padding:5px 15px;background-color:$(theme.sec.color);border-radius:40px} h2.feat-title a{color:#252525} .feat-readmore a{color:#FFF;padding:6px 10px;background-color:$(theme.color);box-shadow:3px 3px 0 0 $(theme.sec.color)} .feat-readmore a:hover{box-shadow:none} .related-stuff .slick-prev,.related-stuff .slick-next{top:30%} #main-slider .slick-prev{left:200px} .main-gallery .slick-prev,.related-stuff .slick-prev{left:-40px} .main-gallery .slick-next,.related-stuff .slick-next{right:-40px} .main-gallery:hover .slick-prev,.related-stuff:hover .slick-prev{left:0} .main-gallery:hover .slick-next,.related-stuff:hover .slick-next{right:0} .slick-prev:before,.slick-next:before{content:''} #main-slider .slick-next{right:200px} .item{position:relative} #section-featured{position:relative;min-height:50px;width:100%} #main-slider div img{max-width:100%;height:490px;object-fit:cover;width:100%} #main-slider div span.title{font-size:19px;color:#fff;position:absolute;bottom:0;left:0;width:100%;padding:25px;-webkit-transition:all .3s;-moz-transition:all .3s;-o-transition:all .3s;transition:all .3s} div#main-slider{width:100%;overflow:hidden} div#bt-slider-main .title{display:none} .feat-wrapper{position:absolute;left:10px;bottom:120px;right:10px;padding:20px;width:60%;margin:0 auto} .feat-wrapper-inner{position:relative;height:100%;z-index:99;width:100%;display:table;padding:40px;vertical-align:middle;text-align:center;border-top:0;background:#fff;color:#fff;-webkit-box-shadow:9px 9px 0 0 #F1F1F1;-moz-box-shadow:9px 9px 0 0 #F1F1F1;box-shadow:9px 9px 0 0 #F1F1F1} .feat--inner{vertical-align:middle;display:table-cell} .feat-header{margin-bottom:0;padding:0 20px} .feat-cat:before{content:'';display:inline-block;height:2px;width:40px;background:#A2A2A2;margin-bottom:5px;margin-right:0} .feat-cat:after{content:'';display:inline-block;height:2px;width:40px;background:#A2A2A2;margin-bottom:5px;margin-left:0} span.feat-cat{font-size:12px;letter-spacing:1px;padding-bottom:2px;display:inline-block;margin:0 0 10px 5px;font-weight:400;text-transform:uppercase} .slick-slide{opacity:1;transition:.2s} .item.slick-slide.slick-active.slick-center{opacity:1;transition:.2s} .slick-slider{position:relative;display:block;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent} .slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0} .slick-list:focus{outline:none} .slick-list.dragging{cursor:pointer;cursor:hand} .slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)} .slick-track{position:relative;top:0;left:0;display:block} .slick-track:before,.slick-track:after{display:table;content:''} .slick-track:after{clear:both} .slick-loading .slick-track{visibility:hidden} .slick-slide{display:none;float:left;height:100%;min-height:1px} [dir='rtl'] .slick-slide{float:right} .slick-slide img{display:block} .slick-slide.slick-loading img{display:none} .slick-slide.dragging img{pointer-events:none} .slick-initialized .slick-slide{display:block} .slick-loading .slick-slide{visibility:hidden} .slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent} .slick-prev,.slick-next{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;margin-top:-10px;padding:0;cursor:pointer;color:transparent;border:none;outline:none;background:transparent} .slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:transparent;outline:none;background:transparent} .slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1} .slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25} .slick-prev:before,.slick-next:before{font-family:'slick';font-size:20px;line-height:1;opacity:.75;color:#252525;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} .slick-prev{left:-25px} [dir='rtl'] .slick-prev{right:-25px;left:auto} .slick-next{right:-25px} [dir='rtl'] .slick-next{right:auto;left:-25px} .slick-slider{margin-bottom:30px} .slick-dots{text-align:center} .slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 8px;padding:0;cursor:pointer} .slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:none;background:transparent} .slick-dots li button:hover,.slick-dots li button:focus{outline:none} .slick-dots li button:hover:before,.slick-dots li button:focus:before{opacity:1;background-color:$(theme.color)} .slick-dots li button:before{position:absolute;top:0;display:block;left:0;content:'';text-align:center;opacity:.35;height:5px;width:22px;background-color:#656464;margin-top:5px;transition:.2s;border-radius:50px} .slick-dots li.slick-active button:before{opacity:.75;background-color:$(theme.color)} @media only screen and (max-width:767px) and (min-width:480px) { #main-slider .slick-prev,.main-gallery .slick-prev,.related-stuff .slick-prev{left:0} #main-slider .slick-next,.main-gallery .slick-next,.related-stuff .slick-next{right:0} #main-slider div img{height:350px} .feat-wrapper{bottom:15px;padding:10px;width:430px} h2.feat-title{line-height:32px;font-size:23px} .thumbnail{margin:0 auto} .item.slick-slide:before{opacity:1;background:0 0} } @media only screen and (max-width:479px) { .fixedheader .grid,span.feat-cat{display:none} .header img,.thumbnail{margin:0 auto} #main-slider .slick-next{right:0} #main-slider .slick-prev{left:0} #main-slider div img{height:275px} .gal4 img{height:250px} .feat-readmore{width:135px} img.thumb-single{max-height:300px} h2.feat-title{line-height:32px;font-size:23px} .feat-wrapper{bottom:15px;padding:5px;width:94%} } .large-12.column{text-align:center} @-webkit-keyframes justified-gallery-show-caption-animation { from{opacity:0} to{opacity:.7} } @-moz-keyframes justified-gallery-show-caption-animation { from{opacity:0} to{opacity:.7} } @-o-keyframes justified-gallery-show-caption-animation { from{opacity:0} to{opacity:.7} } @keyframes justified-gallery-show-caption-animation { from{opacity:0} to{opacity:.7} } @-webkit-keyframes justified-gallery-show-entry-animation { from{opacity:0} to{opacity:1} } @-moz-keyframes justified-gallery-show-entry-animation { from{opacity:0} to{opacity:1} } @-o-keyframes justified-gallery-show-entry-animation { from{opacity:0} to{opacity:1} } @keyframes justified-gallery-show-entry-animation { from{opacity:0} to{opacity:1} } .justified-gallery{width:100%;position:relative;overflow:hidden;margin-bottom:30px} .justified-gallery&gt;a,.justified-gallery&gt;div{position:absolute;display:inline-block;overflow:hidden;opacity:0;filter:alpha(opacity=0)} .justified-gallery&gt;a&gt;a&gt;img,.justified-gallery&gt;a&gt;img,.justified-gallery&gt;div&gt;a&gt;img,.justified-gallery&gt;div&gt;img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0} .justified-gallery&gt;a&gt;.caption,.justified-gallery&gt;div&gt;.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif} .justified-gallery&gt;a&gt;.caption.caption-visible,.justified-gallery&gt;div&gt;.caption.caption-visible{display:initial;opacity:.7;filter:&quot;-webkit-animation:justified-gallery-show-caption-animation 500ms 0 ease;-moz-animation:justified-gallery-show-caption-animation 500ms 0 ease;-ms-animation:justified-gallery-show-caption-animation 500ms 0 ease} .justified-gallery&gt;.entry-visible{opacity:1;filter:alpha(opacity=100);-webkit-animation:justified-gallery-show-entry-animation 500ms 0 ease;-moz-animation:justified-gallery-show-entry-animation 500ms 0 ease;-ms-animation:justified-gallery-show-entry-animation 500ms 0 ease} .justified-gallery&gt;.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;opacity:initial;filter:initial;overflow:initial} .justified-gallery&gt;.spinner&gt;span{display:inline-block;opacity:0;filter:alpha(opacity=0);width:8px;height:8px;margin:0 4px;background-color:#000;border-radius:6px} ]]></b:skin>  
    • Por isaque_cb2
      Olá galera, eu estou trabalhando em um site pessoal, mais para aprendizado mesmo, mas me deparei com um erro, quando eu abro o site no navegador (PC) funciona normal, mas quando abro no celular, a imagem dica pequena e no topo, alguém pode me ajudar com isso?
      print 1: (modo mobile do inspecionar)

      no PC fica normal, repare a área cinza abaixo da imagem, toda essa área devia ser coberta pela imagem, grato!
      http://prntscr.com/mvj3ed
       
      Grato desde já!
    • Por DjjrGabriel4
      Boa tarde! Sou dono de um grande serviço de iptv, e no momento estou vendendo tvboxes(semelhante ao apple tv porém com android), mas precisava alterar o launcher, pois esses tvboxes seriam somente para o iptv, sem a opção do usuário poder instalar outros aplicativos e/ou mexer nas configurações do aparelho. Será que é possivel transformar um apk em um launcher?

      Meu apk: https://silveiraiptv.com.br/app.apk
    • Por nilo7004b
      Ola pessoal, sou novo aqui no fórum e desculpem qualquer erro, já procurei bastante pelo meu problema e não consegui encontrar nada a respeito. O meu problema é que eu estou desenvolvendo uma pagina web e após definir o background como um gradiente e adicionar divs aparecem umas manchas brancas pela pagina que vão alterando de posição a medida em que vai fazendo scroll na pagina, na imagem anexada tem o exemplo, gostaria de saber qual a origem do problema e como resolver. Desde já agradeço pela ajuda.
      Obs.: as DIVs adicionadas não estão com a cor de background definida.
       




×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.