Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jeovane Carvalho

Fopen desabilitado Uol Host

Recommended Posts

Saudações pessoal , venho por meio desta tentar mais uma solução para um outro problema que seria o seguinte:

 

Tenho um site de imobiliária e dentro dele tenho diversos arquivos XML que se integram a cada portal de anúncios de imóveis, sendo que meu sistema exporta todos os meus anúncios através dele , tenho integração em mais de 20 portais. até uns dias atrás os meus XMLS estava funcionando normalmente, e depois disso, alguns portais não estão conseguindo mais importar meus anúncios pelo meu XML e achando que era erro meu ou alguma função obsoleta dentro do meu XML usando o php, sendo que o meu XML é dinâmico, e percebi que eu uso funções de acordo com os padrões do php atual, e vi que alguns portais ao tentarem importar meus anuncios geram esse erro como exemplo abaixo:

 

( ! ) Warning: DOMDocument::load(http://www.jcimoveisbrasil.com/xml_achou_mudou.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\html5\teste_DOM.php on line 16

 

 

E notei que o erro vem do meu servidor (infelizmente UOL HOST) por bloquear a diretiva Allow url fopen, eles alegam que nem tentando habilitá-la pelo htaccsess é possível, por que eles dizem que deixam um brecha para *** cod injection ***, e bloquearam no servidor deles, mas se eu contratar uma hospedagem CLOUD que eles oferecem e que é bem mais cara, eu conseguiria habilitá-la ... Eu estou pegando raiva dessa hospedagem por causa disso, e estes portais que estão com problemas para importar meu dados no XML, eles usam o método DOM para se comunicar com o XML , e a bendita uol bloqueia esta função.

 

O que eu queria saber é, ou se existe uma função nativa do php que poderia contornar isso , porque senão eu teria que cancelar meu plano de hospedagem da uol e contratar uma outra que não bloqueie a opção allow url fopen do php, tentei com CURL, mas vi que não tem nada a ver, porque quem teria que mudar a programação seria o portal, e os outros sites que eles tem como parceria recebem o XML normalmente.

 

Este seria meu XML que esta dentro do meu site:

 

http://www.jcimoveisbrasil.com/xml_achou_mudou.xml

 

Vocês acessando a url via navegador, ela funciona normalmente , mas usando esta função que postei abaixo, parecida com a que os portais usam para se comunicar com a URL seria mais ou menos essa que desenvolvi :

<?php
ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);
include_once('config.php');
include_once('tags_integrado.php');
$hoje = date('Y-m-d');
?>

<?php

// try this html listing example for all nodes / includes a few getElementsByTagName options:

$doc = new DOMDocument();
$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.xml' );

$classificados = $doc->getElementsByTagName( "imovel" );
foreach( $classificados as $imovel ){
      
$codigoreferencia = $imovel->getElementsByTagName( "codigoreferencia" );
$codigoreferencia = $codigoreferencia->item(0)->nodeValue;

$finalidade = $imovel->getElementsByTagName( "finalidade" );
$finalidade = $finalidade->item(0)->nodeValue;

$titulo= $imovel->getElementsByTagName( "titulo" );
$titulo = $titulo->item(0)->nodeValue;

$descricao = $imovel->getElementsByTagName( "descricao" );
$descricao = $descricao->item(0)->nodeValue;

$urlimovel = $imovel->getElementsByTagName( "urlimovel" );
$urlimovel = $urlimovel->item(0)->nodeValue;
 
$dormitorios = $imovel->getElementsByTagName( "dormitorios" );
$dormitorios = $dormitorios->item(0)->nodeValue;
 
$banheiros = $imovel->getElementsByTagName( "banheiros" );
$banheiros = $banheiros->item(0)->nodeValue;
 
$suites = $imovel->getElementsByTagName( "suites" );
$suites = $suites->item(0)->nodeValue;
 
$vagas = $imovel->getElementsByTagName( "vagas" );
$vagas = $vagas->item(0)->nodeValue;
 
$area = $imovel->getElementsByTagName( "area" );
$area = $area->item(0)->nodeValue;
 
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
 
$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;
 
$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;
 
$pais = $imovel->getElementsByTagName( "pais" );
$pais = $pais->item(0)->nodeValue;
 
$preco = $imovel->getElementsByTagName( "preco" );
$preco = $preco->item(0)->nodeValue;
 
$fotos = $imovel->getElementsByTagName( "fotos" );
$fotos = $fotos->item(0)->nodeValue;

$tipoanunciante = $imovel->getElementsByTagName( "tipoanunciante" );
$tipoanunciante = $tipoanunciante->item(0)->nodeValue;
 
$nomefantasia = $imovel->getElementsByTagName( "nomefantasia" );
$nomefantasia = $nomefantasia->item(0)->nodeValue;
 
$endereco = $imovel->getElementsByTagName( "endereco" );
$endereco = $endereco->item(0)->nodeValue;
 
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
 

$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;

$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;

$telefone = $imovel->getElementsByTagName( "telefone" );
$telefone = $telefone->item(0)->nodeValue;

$email = $imovel->getElementsByTagName( "email" );
$email = $email->item(0)->nodeValue;

$urlsite = $imovel->getElementsByTagName( "urlsite" );
$urlsite = $urlsite->item(0)->nodeValue;

$urllogo = $imovel->getElementsByTagName( "urllogo" );
$urllogo = $urllogo->item(0)->nodeValue;

echo"
CÓDIGO REFERÊNCIA: $codigoreferencia <br /><br />
URL: ".$urlimovel." <br /><br />
FINALIDADE: ".$finalidade." <br /><br />
TÍTULO ".$titulo." <br /><br />
DESCRIÇÃO: ".$descricao." <br /><br />
DORMITÓRIOS: ".$dormitorios." <br /><br />
BANHEIROS: ".$banheiros." <br /><br />
SUÍTES: ".$suites." <br /><br />
VAGAS: ".$vagas." <br /><br />
ÁREA: ".$area." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
PAIS: ".$pais." <br /><br />
PREÇO: ".$preco." <br /><br />
FOTOS: ".$fotos."<br /> <br /><br />
TIPO DE ANUNCIANTE: ".$tipoanunciante." <br /><br />
NOME FANTASIA: ".$nomefantasia." <br /><br />
ENDEREÇO : ".$endereco." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
TELEFONE: ".$telefone." <br /><br />
EMAIL: ".$email." <br /><br />
URL-SITE: ".$urlsite." <br /><br />
URL_LOGO: ".$urllogo." <br /><br />
";
}
//------------------------SEPARADOR----------------------------------//
?>

_______________________________________________________________________________________________________________________________________<br /><br />





";
  }




  

?>

E usando essa função localmente para se comunicar com a URL gera o mesmo erro:

 

 

( ! ) Warning: DOMDocument::load(http://www.jcimoveisbrasil.com/xml_achou_mudou.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\html5\teste_DOM.php on line 16

E tentando acessar remotamente , SEM CHANCE , dá tela branca , como se não houvesse erros ou nenhuma echo presente para imprimir os dados na tela..

 

 

Desculpem pelo texto longo galera, mas foi para melhor entendimento.. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Serra obrigado pela resposta, mas no meu caso seria o portal que teria que usar o curl para se comunicar e não eu correto..e outra coisa tem algum outro serviço de hospedagem que você me recomenda que use a diretiva allow url fopen habilitada, ou então têm alguma função que eu possa inserir dentro do meu XML que o sistema do portal que usa a função DOM consiga abrir a url do meu xml, ou não tem nada a ver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução mais simples seria de fato usar cURL.

Olá Serra obrigado pela resposta, mas no meu caso seria o portal que teria que usar o curl para se comunicar e não eu correto..e outra coisa tem algum outro serviço de hospedagem que você me recomenda que use a diretiva allow url fopen habilitada, ou então têm alguma função que eu possa inserir dentro do meu XML que o sistema do portal que usa a função DOM consiga abrir a url do meu xml, ou não tem nada a ver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errado, quem ESTÁ REQUISITANDO deve usar cURL, para o portal (http://www.jcimoveisbrasil.com/xml_achou_mudou.xml), você usar fopen ou cURL, dá na mesma, no servidor chega apenas a requisição da página e o servidor devolve o XML. No caso, o cURL deve ser usado na página teste_DOM.php que ao que parece está no seu localhost....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Errado, quem ESTÁ REQUISITANDO deve usar cURL, para o portal (http://www.jcimoveisbrasil.com/xml_achou_mudou.xml), você usar fopen ou cURL, dá na mesma, no servidor chega apenas a requisição da página e o servidor devolve o XML. No caso, o cURL deve ser usado na página teste_DOM.php que ao que parece está no seu localhost....

Sim Serra até aí eu entendi, mas o portal seria o *achou mudou * e são eles que fazem a comunicação com meu site para importar meus anúncios http://www.jcimoveisbrasil.com/xml_achou_mudou.xml mas eu vou postar o XML em php que estou usando para os portais:

<?php
header('Content-type: application/xml');
include_once('config.php');
include_once('tags_integrado.php'); 

$hoje = date('Y-m-d');
?>
<classificados>
<language>Portuguese</language>
<imoveis>
<?php
/* MONTA CRITERIOS DE BUSCA */ 

$where='i.ativo ="1"';
$max=100000;$inicio=$max*$inicio;
$pgs=ceil($total/$max);
$sql=$MySQLi->query("SELECT i.id, i.foto_exibicao,i.foto_titulo,i.foto_descricao,i.mapa,i.latitude,i.longitude,i.cep,i.area_construida,
i.area_total,i.valor_condominio,i.valor_iptu,i.valor_prestacao,i.valor,i.quartos,i.suites,i.banheiros,i.garagem,i.codigo,i.data,i.msg,t.tipo_nome,n.tipo AS negocio,c.cidade,c.uf,b.bairro FROM imoveis i INNER JOIN negocio_tipo n ON(n.id = i.id_negocio_tipo)INNER JOIN imoveis_tipo t ON(t.id = i.id_tipo_imovel)
INNER JOIN cidades c ON (c.id = i.id_cidade)INNER JOIN bairros b ON (b.id = i.bairro)WHERE ".$where." ORDER BY id ASC LIMIT ".$inicio.",".$max."")or print(mysqli_error());while($linha= mysqli_fetch_array($sql)){
$id=$linha['id'];
$negocio=$linha['negocio'];
$dormitorios=$linha['quartos'];
$suites=$linha['suites'];
$banheiros=$linha['banheiros'];
$garagem=$linha['garagem'];
$area_construida=$linha['area_construida'];
$area_total=$linha['area_total'];
$msg=$linha['msg'];
$foto_titulo=$linha['foto_titulo'];
$foto_descricao=$linha['foto_descricao'];
$valor_condominio=$linha['valor_condominio'];
$valor_iptu=$linha['valor_iptu'];
$valor_prestacao=$linha['valor_prestacao'];
$foto_exibicao=$linha['foto_exibicao'];
$latitude=$linha['latitude'];
$longitude=$linha['longitude'];
$data=$linha['data'];
$tipos=$linha['tipo_nome'];
$tipo=$tipos;
$tipo=strtolower(str_replace(" ","-",strtr(utf8_decode(trim($tipo)),utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")));
$bairros=$linha['bairro'];
$bairro=$bairros;$bairro=strtolower( str_replace(" ","-",strtr(utf8_decode(trim($bairro)),utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")));$cidades=$linha['cidade'];
$cidade=$cidades;
$cidade=strtolower(str_replace(" ","-",strtr(utf8_decode(trim($cidade)),utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")));
$fotos=$linha['foto'];
$fotos_galeria="http://www.jcimoveisbrasil.com/img_imoveis/album/".$fotos."";
if($linha['area_construida']==''||empty($linha['area_construida'])){
$area_construida='Consulte-nos';
}else{
$area_construida=''.number_format($linha['area_construida'],0,',','');}
if($linha['area_total']==''||empty(
$linha['area_total'])){
$area_total='Consulte-nos';
}else{
$area_total=''.number_format(
$linha['area_construida'],0,',','');}
if($linha['valor_condominio']==''||empty($linha['valor_condominio'])){$valor_condominio='Consulte-nos';
}else{
$valor_condominio=''.number_format( $linha['valor_condominio'],0,',','');
}
if($linha['valor_iptu']=='0.00'||empty($linha['valor_iptu'])){
$valor_iptu='Consulte-nos';
}else{$valor_iptu=''.number_format($linha['valor_iptu'],0,',','');}if($linha['valor']=='0.00'||empty($linha['valor'])){$valor='0.00';}else{$valor=''.number_format($linha['valor'],0,'','');
}

echo"<imovel><codigoreferencia><![CDATA[".$id."]]></codigoreferencia>
<urlimovel><![CDATA[http://www.jcimoveisbrasil.com/imovel/".$tipo."/".$bairro."/".$cidade."/".$linha['id']."]]></urlimovel>
<finalidade><![CDATA[Venda]]></finalidade><tipo><![CDATA[casa]]></tipo>
<titulo><![CDATA[".$foto_titulo."]]></titulo>
<descricao><![CDATA[".strip_tags(trim(str_replace(' ','',$msg)))."]]></descricao>
<dormitorios><![CDATA[".$dormitorios."]]></dormitorios>
<banheiros><![CDATA[".$banheiros."]]></banheiros>
<suites><![CDATA[".$suites."]]></suites>
<vagas><![CDATA[".$garagem."]]></vagas>
<area><![CDATA[".$area_construida."]]></area>
<bairro><![CDATA[".$bairro."]]></bairro>
<cidade><![CDATA[".$cidade."]]></cidade>
<estado><![CDATA[SP]]></estado>
<pais><![CDATA[Brasil]]></pais>
<preco><![CDATA[".$valor."]]></preco>";
?>
<fotos>
<?php
$var="\n";
$max_2=10;$inicio_2=$max_2*$inicio;$pgs=ceil($total/$max);
$sqll=$MySQLi->query("SELECT foto FROM fotos AS foto WHERE id_imovel=".$id." ORDER BY id DESC LIMIT ".$inicio_2.",".$max_2."")OR trigger_error($MySQLi->error, E_USER_ERROR);while($linhas=mysqli_fetch_array($sqll)){$fotos=$linhas['foto'];
$fotos_galeria="http://www.jcimoveisbrasil.com/img_imoveis/album/".$fotos."";
echo "<![CDATA[".$fotos_galeria."]]>";

}
?>
</fotos>
<?php
echo'
<anunciante>
<tipoanunciante><![CDATA[imobiliaria]]></tipoanunciante>
<nomefantasia><![CDATA[JC IMÓVEIS BRASIL]]></nomefantasia>
<endereco><![CDATA[Rua Victório Santim , 889 ]]></endereco>
<bairro><![CDATA[Itaquera]]></bairro>
<cidade><![CDATA[São Paulo]]></cidade>
<estado><![CDATA[SP]]></estado>
<telefone><![CDATA[(11) 2056-4012]]></telefone>
<email><![CDATA[jcimoveisbrasil@hotmail.com]]></email>
<urlsite><![CDATA[http://www.jcimoveisbrasil.com]]></urlsite>
<urllogo><![CDATA[http://www.jcimoveisbrasil.com/images/jclogo.png]]></urllogo>
</anunciante>';
?>
<?php

echo "<latitude><![CDATA[".$latitude."]]></latitude>
<longitude><![CDATA[".$longitude."]]></longitude>";?>
<?php echo"</imovel>".PHP_EOL."";}?>
</imoveis>
</classificados>

E com esse XML acima eu consigo exportar meus anúncios para quase todos os portais e menos alguns que esta dando o erro acima do post #1, e esses portais usam o método DOM para fazer a requisição ..e o primeiro código que postei eu apenas coloquei de exemplo para imprimir o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então inverta o que eu disse, quem tem que alterar o script é o portal, pois o "problema" está no servidor dele, você não tem nenhuma ação que pode ser feito para contornar isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o arquivo que retorna o xml é um PHP, entao pq você chama um .xml?

a nao ser que você tenha uma regra rewrite no seu .htacces, o arquivo xml_achou_mudou.xml nao existe por isso o erro 404. O que existe é o xml_achou_mudou.php eu acho

 

troque isso

$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.xml' );

por

$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.php' );

Compartilhar este post


Link para o post
Compartilhar em outros sites

ELETRONIC obrigado pela resposta e sim eu uso a regra no .htaccess para urls amigáveis, mas meu problema nõa é este e como O Serra disse acho que o portal teria que mudar a linguagem para a importação do XML.. Mesmo usando php retorna mesmo erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então inverta o que eu disse, quem tem que alterar o script é o portal, pois o "problema" está no servidor dele, você não tem nenhuma ação que pode ser feito para contornar isto.

Então Serra agora me diga, o portal deles tem outras empresas que usam o XML e se comunicam e é feito a importação sem erros vou dar um exemplo do xml que ele me passaram segue o link abaixo:

 

http://www.jgodoiimoveis.com.br/exportacao/achoumudou.xml

 

O portal me passou esse link deste XML e eles me disseram que a importação é feita normalmente, e na minha hospedagem que hoje me arrependo de ter contratado a UOL HOST, minha plataforma é linux e roda o php 5.6 que esta desabilitada a diretiva allow url fopen por definitivo, nem pelo .htaccess é possível habilitá-la, não sei se é por isso que não esta havendo comunicação usando CURL ou DOM...

 

A mensagem abaixo foi uma pessoa do suporte do portal que me enviou e foi o erro que o portal aponto quando tentou fazer uma requisição com o meu XML


Fiz um teste agora com o wget e funcionou pelo jeito não é o ip, mas veja o erro:

 

Warning: DOMDocument::load(http://www.jcimoveisbrasil.com/xml_achou_mudou.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Serra agora me diga, o portal deles tem outras empresas que usam o XML e se comunicam e é feito a importação sem erros vou dar um exemplo do xml que ele me passaram segue o link abaixo:

Infelizmente aqui a minha opinião seria baseada em achismo, existem várias possibilidades, por exemplo, instalações diferentes com configurações do PHP diferentes em cada site/whm da máquina.

 

O portal me passou esse link deste XML e eles me disseram que a importação é feita normalmente, e na minha hospedagem que hoje me arrependo de ter contratado a UOL HOST, minha plataforma é linux e roda o php 5.6 que esta desabilitada a diretiva allow url fopen por definitivo, nem pelo .htaccess é possível habilitá-la, não sei se é por isso que não esta havendo comunicação usando CURL ou DOM...

Allow URL Fopen afeta apenas o fpen para URL externas, é provável quem o DOM load utilize isto. Em tese cURL não é afetado, exatamente por isto eu nunca uso fopen, assim consigo garantir que se cURL estiver ativo no servidor vou conseguir fazer requisições externas sem problemas.

 

Qual foi a sua tentativa com cURL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente aqui a minha opinião seria baseada em achismo, existem várias possibilidades, por exemplo, instalações diferentes com configurações do PHP diferentes em cada site/whm da máquina.

 

Allow URL Fopen afeta apenas o fpen para URL externas, é provável quem o DOM load utilize isto. Em tese cURL não é afetado, exatamente por isto eu nunca uso fopen, assim consigo garantir que se cURL estiver ativo no servidor vou conseguir fazer requisições externas sem problemas.

 

Qual foi a sua tentativa com cURL?

Então antes a importação era feita normalmente por esse mesmo portal, e foi só agora que este problema vem a acontecer, e acho que eles fizeram alguma coisa no servidor do portal ou então a Uol host esta bloqueando alguma coisa, por exemplo me tira uma dúvida , se a diretiva allow url fopen estiver desabilitada , eu não consigo acessar a url com dom vou dar um exemplo abaixo:

 

 

Eu testei localmente assim com a url de um outro cliente do portal veja:

<?php
ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);
include_once('config.php');
include_once('tags_integrado.php');
$hoje = date('Y-m-d');
?>

<?php

// try this html listing example for all nodes / includes a few getElementsByTagName options:

$doc = new DOMDocument();
$doc->load( 'http://www.jgodoiimoveis.com.br/exportacao/achoumudou.xml' );

$classificados = $doc->getElementsByTagName( "imovel" );
foreach( $classificados as $imovel ){
      
$codigoreferencia = $imovel->getElementsByTagName( "codigoreferencia" );
$codigoreferencia = $codigoreferencia->item(0)->nodeValue;

$finalidade = $imovel->getElementsByTagName( "finalidade" );
$finalidade = $finalidade->item(0)->nodeValue;

$titulo= $imovel->getElementsByTagName( "titulo" );
$titulo = $titulo->item(0)->nodeValue;

$descricao = $imovel->getElementsByTagName( "descricao" );
$descricao = $descricao->item(0)->nodeValue;

$urlimovel = $imovel->getElementsByTagName( "urlimovel" );
$urlimovel = $urlimovel->item(0)->nodeValue;
 
$dormitorios = $imovel->getElementsByTagName( "dormitorios" );
$dormitorios = $dormitorios->item(0)->nodeValue;
 
$banheiros = $imovel->getElementsByTagName( "banheiros" );
$banheiros = $banheiros->item(0)->nodeValue;
 
$suites = $imovel->getElementsByTagName( "suites" );
$suites = $suites->item(0)->nodeValue;
 
$vagas = $imovel->getElementsByTagName( "vagas" );
$vagas = $vagas->item(0)->nodeValue;
 
$area = $imovel->getElementsByTagName( "area" );
$area = $area->item(0)->nodeValue;
 
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
 
$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;
 
$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;
 
$pais = $imovel->getElementsByTagName( "pais" );
$pais = $pais->item(0)->nodeValue;
 
$preco = $imovel->getElementsByTagName( "preco" );
$preco = $preco->item(0)->nodeValue;
 
$fotos = $imovel->getElementsByTagName( "fotos" );
$fotos = $fotos->item(0)->nodeValue;

$tipoanunciante = $imovel->getElementsByTagName( "tipoanunciante" );
$tipoanunciante = $tipoanunciante->item(0)->nodeValue;
 
$nomefantasia = $imovel->getElementsByTagName( "nomefantasia" );
$nomefantasia = $nomefantasia->item(0)->nodeValue;
 
$endereco = $imovel->getElementsByTagName( "endereco" );
$endereco = $endereco->item(0)->nodeValue;
 
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
 

$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;

$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;

$telefone = $imovel->getElementsByTagName( "telefone" );
$telefone = $telefone->item(0)->nodeValue;

$email = $imovel->getElementsByTagName( "email" );
$email = $email->item(0)->nodeValue;

$urlsite = $imovel->getElementsByTagName( "urlsite" );
$urlsite = $urlsite->item(0)->nodeValue;

$urllogo = $imovel->getElementsByTagName( "urllogo" );
$urllogo = $urllogo->item(0)->nodeValue;

echo"
CÓDIGO REFERÊNCIA: $codigoreferencia <br /><br />
URL: ".$urlimovel." <br /><br />
FINALIDADE: ".$finalidade." <br /><br />
TÍTULO ".$titulo." <br /><br />
DESCRIÇÃO: ".$descricao." <br /><br />
DORMITÓRIOS: ".$dormitorios." <br /><br />
BANHEIROS: ".$banheiros." <br /><br />
SUÍTES: ".$suites." <br /><br />
VAGAS: ".$vagas." <br /><br />
ÁREA: ".$area." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
PAIS: ".$pais." <br /><br />
PREÇO: ".$preco." <br /><br />
FOTOS: ".$fotos."<br /> <br /><br />
TIPO DE ANUNCIANTE: ".$tipoanunciante." <br /><br />
NOME FANTASIA: ".$nomefantasia." <br /><br />
ENDEREÇO : ".$endereco." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
TELEFONE: ".$telefone." <br /><br />
EMAIL: ".$email." <br /><br />
URL-SITE: ".$urlsite." <br /><br />
URL_LOGO: ".$urllogo." <br /><br />
";
}
//------------------------SEPARADOR----------------------------------//
?>

_______________________________________________________________________________________________________________________________________<br /><br />





";
  }




  

?>

Pode ver no script acima a url que estou chamando , e eu testando em localhost eu consigo acessá-la e imprimir os dados do XML na tela mas com a minha url do mei site não veja abaixo o mesmo script mas com a minha url:

<?php
ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);
include_once('config.php');
include_once('tags_integrado.php');
$hoje = date('Y-m-d');
?>

<?php

// try this html listing example for all nodes / includes a few getElementsByTagName options:

$doc = new DOMDocument();
$doc->load( 'http://www.jcimoveisbrasil.com/xml_achou_mudou.xml' );

$classificados = $doc->getElementsByTagName( "imovel" );
foreach( $classificados as $imovel ){
      
$codigoreferencia = $imovel->getElementsByTagName( "codigoreferencia" );
$codigoreferencia = $codigoreferencia->item(0)->nodeValue;

$finalidade = $imovel->getElementsByTagName( "finalidade" );
$finalidade = $finalidade->item(0)->nodeValue;

$titulo= $imovel->getElementsByTagName( "titulo" );
$titulo = $titulo->item(0)->nodeValue;

$descricao = $imovel->getElementsByTagName( "descricao" );
$descricao = $descricao->item(0)->nodeValue;

$urlimovel = $imovel->getElementsByTagName( "urlimovel" );
$urlimovel = $urlimovel->item(0)->nodeValue;
 
$dormitorios = $imovel->getElementsByTagName( "dormitorios" );
$dormitorios = $dormitorios->item(0)->nodeValue;
 
$banheiros = $imovel->getElementsByTagName( "banheiros" );
$banheiros = $banheiros->item(0)->nodeValue;
 
$suites = $imovel->getElementsByTagName( "suites" );
$suites = $suites->item(0)->nodeValue;
 
$vagas = $imovel->getElementsByTagName( "vagas" );
$vagas = $vagas->item(0)->nodeValue;
 
$area = $imovel->getElementsByTagName( "area" );
$area = $area->item(0)->nodeValue;
 
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
 
$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;
 
$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;
 
$pais = $imovel->getElementsByTagName( "pais" );
$pais = $pais->item(0)->nodeValue;
 
$preco = $imovel->getElementsByTagName( "preco" );
$preco = $preco->item(0)->nodeValue;
 
$fotos = $imovel->getElementsByTagName( "fotos" );
$fotos = $fotos->item(0)->nodeValue;

$tipoanunciante = $imovel->getElementsByTagName( "tipoanunciante" );
$tipoanunciante = $tipoanunciante->item(0)->nodeValue;
 
$nomefantasia = $imovel->getElementsByTagName( "nomefantasia" );
$nomefantasia = $nomefantasia->item(0)->nodeValue;
 
$endereco = $imovel->getElementsByTagName( "endereco" );
$endereco = $endereco->item(0)->nodeValue;
 
$bairro = $imovel->getElementsByTagName( "bairro" );
$bairro = $bairro->item(0)->nodeValue;
 

$cidade = $imovel->getElementsByTagName( "cidade" );
$cidade = $cidade->item(0)->nodeValue;

$estado = $imovel->getElementsByTagName( "estado" );
$estado = $estado->item(0)->nodeValue;

$telefone = $imovel->getElementsByTagName( "telefone" );
$telefone = $telefone->item(0)->nodeValue;

$email = $imovel->getElementsByTagName( "email" );
$email = $email->item(0)->nodeValue;

$urlsite = $imovel->getElementsByTagName( "urlsite" );
$urlsite = $urlsite->item(0)->nodeValue;

$urllogo = $imovel->getElementsByTagName( "urllogo" );
$urllogo = $urllogo->item(0)->nodeValue;

echo"
CÓDIGO REFERÊNCIA: $codigoreferencia <br /><br />
URL: ".$urlimovel." <br /><br />
FINALIDADE: ".$finalidade." <br /><br />
TÍTULO ".$titulo." <br /><br />
DESCRIÇÃO: ".$descricao." <br /><br />
DORMITÓRIOS: ".$dormitorios." <br /><br />
BANHEIROS: ".$banheiros." <br /><br />
SUÍTES: ".$suites." <br /><br />
VAGAS: ".$vagas." <br /><br />
ÁREA: ".$area." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
PAIS: ".$pais." <br /><br />
PREÇO: ".$preco." <br /><br />
FOTOS: ".$fotos."<br /> <br /><br />
TIPO DE ANUNCIANTE: ".$tipoanunciante." <br /><br />
NOME FANTASIA: ".$nomefantasia." <br /><br />
ENDEREÇO : ".$endereco." <br /><br />
BAIRRO: ".$bairro." <br /><br />
CIDADE: ".$cidade." <br /><br />
ESTADO: ".$estado." <br /><br />
TELEFONE: ".$telefone." <br /><br />
EMAIL: ".$email." <br /><br />
URL-SITE: ".$urlsite." <br /><br />
URL_LOGO: ".$urllogo." <br /><br />
";
}
//------------------------SEPARADOR----------------------------------//
?>

Então no meu caso é como se o meu servidor barrasse o acesso a minha url pelo script php..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este post é antigo e fiz uma reclamação no meu host dentro da UOL , e só posso fazer essa alteração se estiver usando o PHP 5.2.17 , mas como eu gosto de manter meus códigos atualizados e uso a última versão até esta data de 04/12/2015 uso o PHP 5.6, e nesta versão a UOL desabilitou definitivamente essa função, e nem pensar em usar .htaccess , nõa funfa mais..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente aqui a minha opinião seria baseada em achismo, existem várias possibilidades, por exemplo, instalações diferentes com configurações do PHP diferentes em cada site/whm da máquina.

 

Allow URL Fopen afeta apenas o fpen para URL externas, é provável quem o DOM load utilize isto. Em tese cURL não é afetado, exatamente por isto eu nunca uso fopen, assim consigo garantir que se cURL estiver ativo no servidor vou conseguir fazer requisições externas sem problemas.

 

Qual foi a sua tentativa com cURL?

Serra obrigado pela ajuda , mas eu e o cara do suporte conseguimos resolver o problema que a MER...... do servidor UOL HOST barra a transmissão e bloqueia a requisição feita pelo DOM, REQUEST, ou até FOPEN, conseguimos resolver da seguinte maneira:

 

Antes de iniciar a função do código tanto fopen , tanto DOM ou Request, é só inserir esse código que seria o USER AGENT, segue abaixo:

$opts=array('http'=>array('user_agent'=>'AchouMudouIntegracao',));
 
$context = stream_context_create($opts);
libxml_set_streams_context($context);                                            

ATENÇÃO:

 

Este código acima funciona apenas para requisição DOM ou REQUEST, depois que fui ver isso:

 

Mas testei esse código abaixo e deu certo em todas as funções sem dar aquele erro de requisição HTTP request failed! HTTP/1.1 404 :

<?php

ini_set('user_agent','MSIE 4\.0b2;');
?>

 

 

Na hora que coloquei este código no topo do meu código, e quando atualizei, na mesma hora consegui fazer a requisição sem erro algum, graças a DEUS e ao meu empenho e com a ajuda fundamental de vocês consegui resolver , e para quem estiver o mesmo problema é só alterar dentro das aspas simples onde esta o nome do portal para o nome do portal o site que queira fazer uma requisição...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por ILR master
      Fala galera, tudo certo?
       
      Seguinte: No servidor A estou tentando fazer uma consulta com o servidor B, mas está dando erro.
      Estou usando o mesmo código de conexão do servidor B que funciona perfeitamente, mas no servidor A, dá erro.
      Segue código:
       
      $host = 'servidor B';
      $user = 'user';
      $pass = '********';
      $db   = 'banco';
       
      // conexão e seleção do banco de dados
      $conexao = mysqlI_connect($host, $user, $pass, $db);
      mysqlI_set_charset($conexao,"utf8");
      //print "Conexão rodando e OK!"; 
      //mysqlI_close($conexao);
       
      Alguém pode me ajudar?
×

Informação importante

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