Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos...
error_reporting(E_ALL);
$matricula = $_POST["matricula"];//'368994' Essa é a matricula do titular
$cpf = $_POST["cpf"];//'37001952818'; // Esse é o CPF do titular
$rg = $_POST["rg"];//'425190146'; // Esse é o RG do titular ou do dependente, no caso, da pessoa que irá fazer o curso
$email = $_POST["email"];//'fgregorio@gmail.com'; // E-mail da pessoa que irá fazer o curso
$str = file_get_contents(
"http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?"
."matricula={$matricula}"
."&cpf={$cpf}"
."&rg={$rg}"
."&email={$email}"
);
$xml = new SimpleXMLElement($str);
Tenho um formulario onde estou informando os dados para realizar a consulta. Local esta funcionando normalmente, mas quando eu coloco no servidor online fica acusando erro nessa linha.
A mensagem de erro é essa:
"Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/raptorde/public_html/xml/teste-doc.php:23 Stack trace: #0 /home/raptorde/public_html/xml/teste-doc.php(23): SimpleXMLElement->__construct('') #1 {main} thrown in /home/raptorde/public_html/xml/teste-doc.php on line 23"
$xml = new SimpleXMLElement($str);
Alguem pode me ajudar nessa ai...
FLWSS
Bom dia...
Eu acho que dessa forma vai funcionar, mas to apanhando aqui...
Porque preciso pegar esse dado "<status_associacao>REGULAR</status_associacao>" para fazer uma comparação em outra pagina, e não to conseguindo pegar esse dado...
Da uma força ai.
flwss
Use DOMDocument::getElementsByTagName
$DOMDocument->getElementsByTagName( 'status_associacao' )->item( 0 )->nodeValue;
http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=368994&cpf=37001952818&rg=425190146&email=fgregorio@gmail.com
Warning: DOMDocument::load() [domdocument.load]: Document is empty in http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=368994&cpf=37001952818&rg=425190146&email=fgregorio@gmail.com, line: 1 in /home/raptorde/public_html/xml/teste-doc.php on line 17
Warning: DOMDocument::load() [domdocument.load]: Start tag expected, '<' not found in http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=368994&cpf=37001952818&rg=425190146&email=fgregorio@gmail.com, line: 1 in /home/raptorde/public_html/xml/teste-doc.php on line 17
string(39) " "
Carlos o erro que ta apresentando... A url ta indo correta... colei ela no navegador foi beleza... e é so colocar ela online que nao funciona.
localmente ta tudo funcionado...
Olha os erros, traduza-os e veja o que está acontecendo.
Pelo pude observar, ta retornando uma variavel vazia...
mas nao esta...
Testei agora e está funcionando corretamente.
Script
<?php
$matricula = '368994';
$cpf = '37001952818';
$rg = '425190146';
$email = 'fgregorio@gmail.com';
$url = sprintf(
'http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=%s&cpf=%s&rg=%s&email=%s',
$matricula, $cpf, $rg, $email
);
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->formatOutput = true;
$DOMDocument->load( $url );
echo $DOMDocument->getElementsByTagName( 'status_associacao' )->item( 0 )->nodeValue;
Saída
REGULAR
<?php
$matricula = $_POST["matricula"];//'368994' Essa é a matricula do titular
$cpf = $_POST["cpf"];//'37001952818'; // Esse é o CPF do titular
$rg = $_POST["rg"];//'425190146'; // Esse é o RG do titular ou do dependente, no caso, da pessoa que irá fazer o curso
$email = $_POST["email"];//'fgregorio@gmail.com'; // E-mail da pessoa que irá fazer o curso
$url = sprintf("http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=%s&cpf=%s&rg=%s&email=%s", $matricula, $cpf, $rg, $email);
$DOMDocument = new DOMDocument("1.0", "UTF-8");
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->formatOutput = true;
$DOMDocument->load($url);
//var_dump($DOMDocument->saveXML( ));
$status = $DOMDocument->getElementsByTagName("status_associacao")->item( 0 )->nodeValue;
header("Location: status.php?sta=$status");
?>
essa parte ta OK...
<?php
$status = $_GET["sta"];
if($status == "REGULAR"){
echo "valor de 50%";
}else{
echo "valor de 100%";
}
?>
Ai vem o seguinte... preciso passar o valor que fica dentro de "status_associacao" nesse caso seria REGULAR.
Vai ser passado via GET, estou fazendo do modo correto?? Passando atraves do header?
Na URL ela ta indo assim: http://www.raptordesign.com.br/xml/status.php?sta=
sem nenhum dado...
Então $status está sem valor.
Realmente estar vazia mesmo...
Carlos tem que fazer alguma configuração especifica a ser feita no servidor ou algo do tipo, ainda continuo com esse erro, por isso q variavel ta vazia.
Copiei o codigo que vc disse estar funcionando ai, mas ainda persiste o erro.
o Erro:
ta retornando ela vazia me parece...
http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=368994&cpf=37001952818&rg=425190146&email=fgregorio@gmail.com
Warning: DOMDocument::load() [domdocument.load]: Document is empty in http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=368994&cpf=37001952818&rg=425190146&email=fgregorio@gmail.com, line: 1 in /home/raptorde/public_html/xml/teste-doc.php on line 17
Warning: DOMDocument::load() [domdocument.load]: Start tag expected, '<' not found in http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=368994&cpf=37001952818&rg=425190146&email=fgregorio@gmail.com, line: 1 in /home/raptorde/public_html/xml/teste-doc.php on line 17
string(39) " "
No servidor local ele ta funcionando... Blz
So colocar online que estraga tudo, vai entender isso...
Já que se trata de URL, tenta habilitar o allow_url_fopen no php.ini
Versão utilizando cURL
$matricula = '368994';
$cpf = '37001952818';
$rg = '425190146';
$email = 'fgregorio@gmail.com';
$url = sprintf(
'http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=%s&cpf=%s&rg=%s&email=%s',
$matricula, $cpf, $rg, $email
);
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
$xml = curl_exec( $ch );
curl_close( $ch );
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->formatOutput = true;
$DOMDocument->loadXML( $xml );
echo $DOMDocument->getElementsByTagName( 'status_associacao' )->item( 0 )->nodeValue;Cara num consigo fazer isso funcionar de jeito nenhum nenhum
<?php
$matricula = $_POST["matricula"];//'368994' Essa é a matricula do titular
$cpf = $_POST["cpf"];//'37001952818'; // Esse é o CPF do titular
$rg = $_POST["rg"];//'425190146'; // Esse é o RG do titular ou do dependente, no caso, da pessoa que irá fazer o curso
$email = $_POST["email"];//'fgregorio@gmail.com'; // E-mail da pessoa que irá fazer o curso
$url = sprintf(
'http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=%s&cpf=%s&rg=%s&email=%s',
$matricula, $cpf, $rg, $email
);
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
$xml = curl_exec( $ch );
curl_close( $ch );
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->formatOutput = true;
$DOMDocument->load( $xml );
$status = $DOMDocument->getElementsByTagName( 'status_associacao' )->item( 0 )->nodeValue;
echo $status;
//header("Location: status.php?sta='$status");
?>
Da esse erro ai:
SCREAM: Error suppression ignored for ( ! ) Fatal error: Call to undefined function curl_init() in C:\wamp\www\xml\teste-doc.php on line 13
local da esse erro, no servidor fica carregando sem parar...
Certo, o wamp, posso estar enganado, mas ele não tem curl habilitado, e talvez nem o libxml pra vc usar o simplexml que vc estava tentando no início. Verifica isso:
<?php
phpinfo();
?>
Cria um documento php com esse conteúdo e acessa ele via browser, verifica se "libXML support" está "active". E verifica também se "cURL support" está "enabled";
Caso não estejam, vc pode usar o xampp, que já vem com isso tudo habilitado por padrão.
No meu servidor, ja tem essa opção habilitada...
ja fiz as outras opções que me forneceram, usando o DOM Document... Local ele funciona mas no servidor de hospedagem da erro.
Desculpa a demora amigo, pode postar o erro por favor?
Pessoal obrigado a todos pela ajuda, consegui resolver o problema...
Meu servidor de hospedagem tava bloqueando a porta usada nesse link, resolução apenas tirei a porta do link. testei pra vê se iria fazer a conexão normalmente, e fez... e ta realizando as consultas normalmente com o status que desejo.
Obrigado a todos
Flwss
Marque o tópico como resolvido.
Use DOMDocument
$url = sprintf(
'http://200.182.243.2:8091/integracaoceaesp/api.php/consultasocio/?matricula=%s&cpf=%s&rg=%s&email=%s',
$matricula, $cpf, $rg, $email
Saída