Ir para conteúdo

POWERED BY:

Arquivado

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

xandyloch

[Resolvido] Função file_get_contents

Recommended Posts

Bom tarde, Pessoal

 

Pessoal, estou com um problema no meu PHP,esta apresentando essa mensagem de

 

erro" failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found ", mostra

 

que é nessa linha $xmlret = file_get_contents($urlsid); //Faz a conexão e pega o

 

retorno, em uma pagina anterior eu monto o XML, que quando comento trechos no xml

 

funciona normal, porem quando tiro os comentario, apresenta mensagem de erro.

 

$urlsid = é o meu link, aonde possui todos os paramentos do xml.

 

Obs: já peguei o link que ele gera, e coloquei no navegar e funcionou.

 

Será que alguma configuração no PHP?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples interpretação da mensagem obtida. Not found, significa que o URL que você informou não existe OU por algum motivo o servidor retornou um erro do tipo 404.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é minha montagem do XML, que ficca na pagina anterior

 

$xml  = "<sidxml>";
$xml .= 	"<param retorno='XML' />";
$xml .= 	"<sid acao='SID.SRV.ALTEMPFIL' retorno='RET_ALTEMPFIL'>";
$xml .= 		"<param nome='CODEMP' valor='$codemp' />";
$xml .= 		"<param nome='CODFIL' valor='$codfil' />";
$xml .= 	"</sid>";
$xml .= 	"<sid acao='SID.PED.GRAVAR' retorno='RET_NUMPED'>";
$xml .= 		"<param nome='CODCLI' valor='$codcli' />";
$xml .= 		"<param nome='CODREP' valor='$codrep' />";
$xml .= 		"<param nome='TNSPRO' valor='$codtns' />";
$xml .= 		"<param nome='CODCPG' valor='$codcpg' />";
$xml .= 		"<param nome='DATEMI' valor='$datemi' />";
$xml .= 		"<param nome='PEDCLI' valor='$pedcli' />";
$xml .= 		"<param nome='CODFPG' valor='$codfpg' />";
$xml .= 		"<param nome='SITPED' valor='$sitped' />";
$xml .= 		"<param nome='CODVEN' valor='$codger' />";
$xml .= 		"<param nome='CIFFOB' valor='$ciffob' />";
$xml .= 		"<param nome='USU_CLIENT' valor='$client' />";
$xml .= 		"<param nome='USU_CODIFP' valor='$codifp' />";
$xml .=			"<param nome='USU_TIPENT' valor='$tipent' />";
$xml .= 		"<param nome='USU_FORIFP' valor='$forifp' />";
/*$xml .=			"<param nome='USU_ANXLAY' valor='$anxlay' />";
$xml .= 		"<param nome='USU_ANXAMO' valor='$anxamo' />";
$xml .= 		"<param nome='USU_ANXCLI' valor='$anxcli' />";
$xml .=			"<param nome='USU_ANXDIS' valor='$anxdis' />";
$xml .=			"<param nome='USU_ANXCDR' valor='$anxcdr' />";
$xml .= 		"<param nome='USU_ANXCRO' valor='$anxcro' />";
$xml .= 		"<param nome='USU_ANXEMA' valor='$anxema' />";
$xml .= 		"<param nome='USU_ANXOUT' valor='$anxout' />";
$xml .= 		"<param nome='USU_TIPPED' valor='$tipped' />";
$xml .=         "<param nome='USU_PEDITM' valor='$peditm' />";*/

if (!empty($codroe)) {
$xml .= 	"<param nome='CODROE' valor='$codroe' />";
}
$xml .= 		"<param nome='SEQROE' valor='$seqrot' />";
$xml .= 	"</sid>";

$xml .= "<sid acao='SID.PED.GRAVARPRODUTO'>";
	$xml .= 	"<param nome='NUMPED' valor='@RET_NUMPED' />";
   	$xml .= 	"<param nome='CODPRO' valor='$codpro' />";
	$xml .= 	"<param nome='CODDER' valor='$codder' />";
	$xml .= 	"<param nome='QTDPED' valor='$qtdite' />";
	$xml .= 	"<param nome='PREUNI' valor='$preuni' />";
	$xml .= 	"<param nome='TNSPRO' valor='$codtns' />";
	$xml .= 	"<param nome='PEDCLI' valor='$pedcli' />";
	$xml .= 	"<param nome='DATENT' valor='$datent' />";
	$xml .= 	"<param nome='RESEST' valor='$resest' />";
	$xml .= 	"<param nome='CODCCU' valor='$CodCcu' />";
	$xml .= "</sid>";
/*
if($obsifp != ""){
for ($i = 1; $i <= count($obsvet); $i++)
{
	$xml .= "<sid acao='SID.PED.GRAVAROBSERVACAO'>";
	$xml .= 	"<param nome='NUMPED' valor='@RET_NUMPED' />";
	$xml .= 	"<param nome='OBSPED' valor='$obsvet[$i]' />";
	$xml .= 	"<param nome='SITOBS' valor='$sitobs' />";
	$xml .= 	"<param nome='CODMOT' valor='$motobs' />";
	$xml .= "</sid>";
}
}

if($obscml != ""){
$xml .= "<sid acao='SID.PED.GRAVAROBSERVACAO'>";
$xml .= 	"<param nome='NUMPED' valor='@RET_NUMPED' />";
$xml .= 	"<param nome='OBSPED' valor='$obscml' />";
$xml .= 	"<param nome='SITOBS' valor='$sitobs' />";
$xml .= 	"<param nome='CODMOT' valor='$motobs' />";
$xml .= "</sid>";
}

$xml .= "<sid acao='SID.SRV.REGRA'>";
$xml .= 	"<param nome='numreg' valor='125' />";
$xml .= 	"<param nome='ecodemp' valor='$codemp' />";
$xml .= 	"<param nome='ecodfil' valor='$codfil' />";
$xml .= 	"<param nome='enumped' valor='@RET_NUMPED' />";
$xml .= 	"<param nome='ecodifp' valor='$codifp' />";
$xml .= "</sid>";
*/
$xml .= "</sidxml>";

nessa pagina tambem monto o link que seria http:\\ipdoservidor\...\..\.

 

Esse script é aonde que apresenta o erro

 

//Busca o XML e o Link para a ação no SID
	$lnksid = $_POST['lnksid']; //Link SID

	$xmlsid = rawurlencode(stripslashes($_POST['xmlsid']));//XML com os dados do Pedido*/
	$urlsid = $lnksid . $xmlsid; //Link usado na comunicação
	//Faz um envio via GET no SID e pega seu retorno buscando o número do Pedido
			echo $urlsid;
	$xmlret = file_get_contents($urlsid); //Faz a conexão e pega o retorno
	$strret = converte_retorno_sid($xmlret); //Pega o retorno da comunicação e joga na função que coverte para string
	//Imprime a mensagem de confirmação na tela
	echo "Pedido: ";
	echo "$strret<br><br><br><br>";
	echo "Retorno completo da efetivação:";
	echo "<br>$xmlret";

Esse erro pode ser algum problema no servidor aonde esta instalado o PHP?, Pois foi trocado o servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
posta o script

posta o script, tenho certeza que seu script se resume so ao xml, se tiver senhas, as esconda com XXX ou algo do tipo, precisa-se olhar o script inteiro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É complicado ajudarmos sem muitas informações. Vamos dar alguns tiros no escuro, por enquanto...

 

- Qual é o site alvo da tentativa de abertura desse stream?

 

- Qual tipo de requisição ele aceita? Só GET, POST também...

 

Se puder ser feita uma requisição via POST, nesse caso é melhor do que passar o XML INTEIRO via GET. Como queries tem limite de tamanho (255 caracteres se não me engano), pode ser esse o problema.

 

Esse XML, precedido por:

 

header( 'Content-type: text/xml;utf-8' );

Se ecoado resulta num XML válido? No Firefox, XML's inválidos aparecem com fundo amarelo e o erro destacado em vermelho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

duas coisas

 

url montada errada ou

SERVER_REQUEST_URI_TO_LARGE, e no servidor não teria uma página para esse erro, e retorna 404

 

enviar com file_get_contents é coisa de criança, tem que usar uma biblioteca forte

 

o servidor é seu, seu digo se você tem acesso

se o sevidor não for seu você pode entrar como google bot, objetivo seria obter resultados que só o gbot teria e assim localizar o problema em um minuto

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma duvida, como se usa este google bot?

 

você precisa ter conhecimento em python, mais caso o nosso amigo queira, posso fazer aqui com uma biblioteca bacana php, rápido e potente para o que ele quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

allow_url_fopen => está em ON?

você pode tentar usar um Agent diferente tb.

 

:seta: http://php.net/manual/pt_BR/function.file-get-contents.php

file_get_contents() é o método preferível para ler o conteúdo de um arquivo em uma string. Ela usa técnicas de mapeamento de memória suportadas pelo seu SO para melhorar a performance.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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