Seguindo com a parte 2 das vídeo-aulas sobre como criar um webservice em php. Nessa aula configuro a o webservice implementando o retorno xml através da classe que crimos na aula I. Faço também o upload dos arquivos e os testes.
É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.
Olá…Sou um dos criadores do blog bsdinfo e estava procurando matérias sobre Php. Sinceramente vc está de Parabéns. Estou terminando curso de Php na 4Linux e acabei encontrando seu blog. Virou referência.
Meu código ta dando uma porrada de erros: Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:1: parser error : Space required after the Public Identifier in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:1: parser error : SystemLiteral ” or ‘ expected in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:1: parser error : SYSTEM or PUBLIC, the URI is missing in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:19: parser error : Opening and ending tag mismatch: hr line 17 and body in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:19: parser error : Opening and ending tag mismatch: body line 4 and html in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:20: parser error : Premature end of data in tag html line 2 in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Olá rafael, uma dúvida, onde que entra aí no caso do webservice, o soap? por ex. andei olhando alguns exemplos com o soapserver e soapcliente; seria uma alternativa?
grato
Estou fazendo meu TCC e vi suas aulas para criar um web service.
Tive um problema, entrando na página acessar.php, ele dá esse erro:
Warning: simplexml_load_file(): http://localhost/PhpProject1/index1.php?id=2:2: parser error : Start tag expected, ‘<' not found in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\PhpProject1\acessar.php on line 3 Warning: simplexml_load_file(): Notice: Undefined property: stdClass::$nome in C:\Program Files\Apache Software in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\PhpProject1\acessar.php on line 3 Warning: simplexml_load_file(): ^ in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\PhpProject1\acessar.php on line 3
Dei uma olhada no projeto do Daniel e consegui verificar que o erro estava acontecendo na classe XML.Class.php
Nao sei exatamente o que é, mas algo nela tinha sido implementado errado. Quando substitui o arquivo dele(Daniel) pelo meu o sistema funcionou perfeitamente.
Logo, creio que o problema no seu projeto seja o mesmo.
Entao, veja a video-aula novamente e veja o que estás implementando errado na sua classe.
Parabéns pelo o bem explicado tutorial, você só equivocou e por isso gerou erro para todos, na linha abaixo:
mysql_query(“SELECT * FROM nome_da_tabela WHERE id = $idproduto”);
Faltou o $rs no qual você faz a referência para a quantidade de linhas afetadas(mysql_num_rows($rs)) então corrigido fica assim:
$rs = mysql_query(“SELECT * FROM nome_da_tabela WHERE id = $idproduto”);
Olá Rafael,
eu segui todo seu passo a passo do Criando um Webservice em PHP e já revisei toda programação em conjunto a sua video aula. Porém, quando acesso o index.php ele me retorna corretamente o xml, mas quando tento acessar utilizando o acessar.php tanto no server local(onde esta hospedado a aplicação) como através de um outro servidor é apresentado o seguinte erro.
Warning: simplexml_load_file() [function.simplexml-load-file]: http://MEU_SITE.com.br/ws/index.php:1: parser error : Start tag expected, ‘<' not found in /home/topdam/public_html/MEU_SITE.com.br/ws/acessar.php on line 4
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/topdam/public_html/MEU_SITE.com.br/ws/acessar.php on line 4
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/topdam/public_html/MEU_SITE.com.br/ws/acessar.php on line 4
sendo que a linha 4 é cotem o código
$xml = simplexml_load_file(“MEU_SITE.com.br/ws/index.php”);
Você saberia me dizer porque isso ocorre?
Será que tem haver com algum tipo de segurança do servidor?
Primeiro teste
– criei um arquivo .xml;
– inseri no servidor onde estão os arquivos Xml.Class.php, index.php e config.php.
– no outro servidor o path mantive o mesmo caminho porem troquei index.php para meuarquivoXml.xml.
Dessa forma o browser apresenta o xml, dessa forma notei consegui realizar uma prova de que o path esta correto.
2 Teste
– Acessei direto o index.php, tanto passando paramentro (id) como sem o parametro;
– o browser apresentar o xml no codigo fonte correntamente contendo os valores;
Então descartamos o problema de ser algo na Xml.Class.php ou na index.php
O que da a impressão é que no meu arquivo index.php quando dou o “echo $xml; ” ele retorna uma objeto xml e não um arquivo e quando solicito no acessar utilizando o $xml = simplexml_load_file(“meusite/ws/index.php”); ele não consegue interpretar.
Fala Rafael, estou tendo problemas no meu projeto, o código xml gerado está com uma linha em branco no começo, não consigo ver onde está o problema, pode dar uma ajuda?
Pelo que analisei, o que está acontecendo é que a index está retornando um arquivo que não é um xml. Se trocarmos o simplexml_load_file por file não dá o erro. Não sei se minha analise está correta.
Olá Rafael! Massa teus tutoriais, encontrei por acaso no meio das minhas buscas por php. Segui essas duas vídeo aulas de webservice e codifiquei como você instruiu. Na hora de testar o arquivo local acessar.php, nada é exibido na tela. Tentei até jogar ele pra minha pasta ‘ws’ do meu servidor de testes mas mesmo assim nada é exibido, o que poderia ser?
Ao executar o meu acessar.php esta dando o erro abaixo:
Warning: simplexml_load_file(): http://inovedesign.net/ws/index.php?id=3:1: parser error : Start tag expected, ‘<‘ not found in C:\wamp64\www\webservice\acessar.php on line 2
Caso possa me ajudar ou enviar seus arquivos.. aguardo.
Muito boa sua video aulas, sempre atualizado. Valeu pela dica.
Muito Rafael, gostei muito e mim trouce para ideias para meus futuros sistemas. vlw pela contribuição de tempo e conhecimento.
Olá…Sou um dos criadores do blog bsdinfo e estava procurando matérias sobre Php. Sinceramente vc está de Parabéns. Estou terminando curso de Php na 4Linux e acabei encontrando seu blog. Virou referência.
Parabéns…
Valeu Luiz…
Já adicionei seu blog nos favoritos também.
Abs
Muito bacana rafael.
Bastante prático e didático!
Meu código ta dando uma porrada de erros: Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:1: parser error : Space required after the Public Identifier in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:1: parser error : SystemLiteral ” or ‘ expected in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:1: parser error : SYSTEM or PUBLIC, the URI is missing in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:19: parser error : Opening and ending tag mismatch: hr line 17 and body in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:19: parser error : Opening and ending tag mismatch: body line 4 and html in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: http://wbsr.desolhotsasa.com.br/index.php?id=1:20: parser error : Premature end of data in tag html line 2 in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/desolhots/public_html/acessar.php on line 2
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/desolhots/public_html/acessar.php on line 2
Olá João,
Acredito que você resolvendo o primeiro erro: “Space required after the Public Identifier” os outros automaticamente estarão resolvidos também.
Dê uma olhada na estrutura do XML que está sendo retornado e na URL que está sendo chamada e vê se está tudo correto.
Abs
Tentei acessar direto sem o arquivo acessar.
E da como se o index.php estivesse corrompido. Não sei mesmo o que pode ser .
Olá rafael, uma dúvida, onde que entra aí no caso do webservice, o soap? por ex. andei olhando alguns exemplos com o soapserver e soapcliente; seria uma alternativa?
grato
Olá Urbano,
No meu exemplo, ensino apenas uma forma simples de se trabalhar com a solicitação de informações via XML. Não utilizo SOAP.
Abs
Boa tarde Rafael!
Estou fazendo meu TCC e vi suas aulas para criar um web service.
Tive um problema, entrando na página acessar.php, ele dá esse erro:
Warning: simplexml_load_file(): http://localhost/PhpProject1/index1.php?id=2:2: parser error : Start tag expected, ‘<' not found in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\PhpProject1\acessar.php on line 3 Warning: simplexml_load_file(): Notice: Undefined property: stdClass::$nome in C:\Program Files\Apache Software in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\PhpProject1\acessar.php on line 3 Warning: simplexml_load_file(): ^ in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\PhpProject1\acessar.php on line 3
Tentei resolver aqui, mas não consegui…
O que pode ser este erro?
Olá Daniel,
Provavelmente é um erro no seu XML. Talvez alguma tag esteja errada ou algo do tipo. O que tem na linha 3 do arquivo acessar.php ?
Abs
Olá Rafael,
Na linha 3, tem o link:
$xml = simplexml_load_file(“http://localhost/PhpProject1/index1.php?id=2”);
*Esse id 2 tem no banco q criei e este é o caminho onde minha página está salva.
Se quiser, posso colar conteúdo do .xml para vc dar uma olhada, pois já revisei e não estou encontrado nada de errado, talvez vc possa encontrar.
O meu dá o mesmo erro do Daniel, na linha 3 do “acessar.php”
:/
Olha o código
XML
xml .= “\n” ;
}
public function openTag($name){
$this->addTab();
$this->xml .= “\n”;
$this->tab++;
}
public function closeTag($name){
$this->tab–;
$this->addTab();
$this->xml .= “\n”;
}
public function setValue($value){
$this->xml .= “$value\n”;
}
private function addTab(){
for($i = 1; $i tab; $i++){
$this->xml .= “\t”;
}
}
public function addTag($name, $value){
$this->addTab();
$this->xml .= “$value\n”;
}
public function __toString() {
return $this->xml;
}
}
?>
INDEX
openTag(“response”);
if($idproduto == ”){
$erro = 1;
$msgerro = ‘Código inválido!’;
}
else{
$rs = mysql_query(“SELECT * FROM produtos WHERE id = $idproduto”);
if(mysql_num_rows($rs) > 0){
$reg = mysql_fetch_object($rs);
$xml->addTag(‘nome’, $reg->nome);
$xml->addTag(‘preco’, $reg->preco);
}else{
$erro = 2;
$msgerro = “Produto não encontrado”;
}
}
$xml->addTag(‘erro’, $erro);
$xml->addTag(‘msgerro’, $msgerro);
$xml->closeTag(“response”);
echo $xml;
?>
não foi o código todo! :/
Olá Rodrigo,
Dei uma olhada no projeto do Daniel e consegui verificar que o erro estava acontecendo na classe XML.Class.php
Nao sei exatamente o que é, mas algo nela tinha sido implementado errado. Quando substitui o arquivo dele(Daniel) pelo meu o sistema funcionou perfeitamente.
Logo, creio que o problema no seu projeto seja o mesmo.
Entao, veja a video-aula novamente e veja o que estás implementando errado na sua classe.
Abs!
Cara pois mande seu projeto para o meu email, pq não consegui, deu o mesmo errinho!!
fufufu.. Deve ser uma coisa bem besta e não percebo o q é..!
Tem como mandar Rafael?
Olá Rodrigo,
Segue link para baixar a classe.
http://files.rafaelwendel.com/Xml.Class.php.txt
Depois que fizer o download, retire a extensão txt do fim do arquivo.
Abs!
Parabéns pelo o bem explicado tutorial, você só equivocou e por isso gerou erro para todos, na linha abaixo:
mysql_query(“SELECT * FROM nome_da_tabela WHERE id = $idproduto”);
Faltou o $rs no qual você faz a referência para a quantidade de linhas afetadas(mysql_num_rows($rs)) então corrigido fica assim:
$rs = mysql_query(“SELECT * FROM nome_da_tabela WHERE id = $idproduto”);
Um abraço
Olá Rafael,
eu segui todo seu passo a passo do Criando um Webservice em PHP e já revisei toda programação em conjunto a sua video aula. Porém, quando acesso o index.php ele me retorna corretamente o xml, mas quando tento acessar utilizando o acessar.php tanto no server local(onde esta hospedado a aplicação) como através de um outro servidor é apresentado o seguinte erro.
Warning: simplexml_load_file() [function.simplexml-load-file]: http://MEU_SITE.com.br/ws/index.php:1: parser error : Start tag expected, ‘<' not found in /home/topdam/public_html/MEU_SITE.com.br/ws/acessar.php on line 4
Warning: simplexml_load_file() [function.simplexml-load-file]: in /home/topdam/public_html/MEU_SITE.com.br/ws/acessar.php on line 4
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/topdam/public_html/MEU_SITE.com.br/ws/acessar.php on line 4
sendo que a linha 4 é cotem o código
$xml = simplexml_load_file(“MEU_SITE.com.br/ws/index.php”);
Você saberia me dizer porque isso ocorre?
Será que tem haver com algum tipo de segurança do servidor?
Abs,
Théo
Rafael,
realizei testes da seguinte forma:
Primeiro teste
– criei um arquivo .xml;
– inseri no servidor onde estão os arquivos Xml.Class.php, index.php e config.php.
– no outro servidor o path mantive o mesmo caminho porem troquei index.php para meuarquivoXml.xml.
Dessa forma o browser apresenta o xml, dessa forma notei consegui realizar uma prova de que o path esta correto.
2 Teste
– Acessei direto o index.php, tanto passando paramentro (id) como sem o parametro;
– o browser apresentar o xml no codigo fonte correntamente contendo os valores;
Então descartamos o problema de ser algo na Xml.Class.php ou na index.php
O que da a impressão é que no meu arquivo index.php quando dou o “echo $xml; ” ele retorna uma objeto xml e não um arquivo e quando solicito no acessar utilizando o $xml = simplexml_load_file(“meusite/ws/index.php”); ele não consegue interpretar.
Abs
OBS. eu copiei o seu codigo da classe xml conforme fornecido neste BLOG, e o erro persistiu.
Abs
Olá Theo,
Dificil identificar o que pode estar acontecendo. Compacta seu projeto aí e me envie por email para eu tentar ajudar.
Abs!
Olá Rafael,
boa tarde!
Primeiramente gostaria de agradece-lo pela atenção e rápido retorno. E desculpas pelo atraso na resposta.
Acabei de enviar o e-mail conforme solicitado.
Muito obrigado,
Théo
Primeiro parabéns pela excelente vídeo-aula.
É possível você me enviar os códigos por e-mail?
É possível também qual seria a diferença em usar um SOAP junto, é que pretendo utilizar o WebSevice para consumir via Andróid.
Parabéns novamente.
Obrigado.
Fala Rafael, estou tendo problemas no meu projeto, o código xml gerado está com uma linha em branco no começo, não consigo ver onde está o problema, pode dar uma ajuda?
Olá Miguel,
Vou precisar dar uma olhada no código para ver o que acontece.
Abs!
Pelo que analisei, o que está acontecendo é que a index está retornando um arquivo que não é um xml. Se trocarmos o simplexml_load_file por file não dá o erro. Não sei se minha analise está correta.
Muito bom o vídeo, parabéns, como seria se fosse selecionar todos os registros de uma tabela? Na hora de imprimir? Obrigado
Mateus,
É só fazer um laço e ir jogando as informações dentro do XML.
Abs!
Olá Rafael! Massa teus tutoriais, encontrei por acaso no meio das minhas buscas por php. Segui essas duas vídeo aulas de webservice e codifiquei como você instruiu. Na hora de testar o arquivo local acessar.php, nada é exibido na tela. Tentei até jogar ele pra minha pasta ‘ws’ do meu servidor de testes mas mesmo assim nada é exibido, o que poderia ser?
Muito bom Rafael, parabéns pela ótima explicação, mas fiquei como uma dúvida. Como ficaria o XML caso eu quisesse retornar uma lista de produtos?
eu quero render a programar o que voce me indica?
Ao executar o meu acessar.php esta dando o erro abaixo:
Warning: simplexml_load_file(): http://inovedesign.net/ws/index.php?id=3:1: parser error : Start tag expected, ‘<‘ not found in C:\wamp64\www\webservice\acessar.php on line 2
Caso possa me ajudar ou enviar seus arquivos.. aguardo.
Olá,
Verifique se você colocou a tag normalmente. Parece ser erro na hora de abertura dela.
Abs!