Fala galera,
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.
Qualquer dúvida utilize a caixa de comentários.
Siga-me no twitter: @rafaelwendel
Rafael Wendel Pinheiro
É formado em Sistemas de Informação e pós-graduado em Sistemas de Banco de Dados. Trabalha com o desenvolvimento de sites, sistemas e outras soluções web.











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