Boa Tarde a Todos!
Preciso de uma ajuda com uma certa urgência!
Já fiz um outro post aqui sobre isso e acabei fechando.
Não sou muito acostumado a programar em PHP, e caiu no meu colo um projeto de Webservice.
Só que Estão exigindo que use o padrão deles que é o NUSOAP.
Eu gostaria muito de modificar, pois pelo que me foi informado aqui mesmo o nusoap está meio descontinuado.
Mas de qualquer forma fiz um teste para ver se funcionava o que estou querendo e estou recebendo um erro que não estou entendendo muito bem, alguém pode me ajudar?
Segue o meus server.php
<?php
require_once 'lib/nusoap.php';
$server->wsdl->addComplexType('cadastrar', 'complexType', 'struct', 'all','',
array(
'empresa' =>array ('name'=>'empresa','type'=>'xsd:string')
,'nome' =>array ('name'=>'nome','type'=>'xsd:string')
,'email' =>array ('name'=>'email','type'=>'xsd:string')
,'ddd' =>array ('name'=>'ddd','type'=>'xsd:string')
,'tel' =>array ('name'=>'tel','type'=>'xsd:string')
,'msg' =>array ('name'=>'msg','type'=>'xsd:string')
)
);
$server->register('cadastrar',
array('dados'=>'tns:cadastro'),
array('return'=>'xsd:string'),
$namespace,
$namespace.'#cadastrar',
'rpc',
'encoded',
'' );
function cadastrar($dados){
return $dados['empresa'];
}
$request = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($request);
?>
require_once 'lib/nusoap.php';
$server->wsdl->addComplexType('cadastrar', 'complexType', 'struct', 'all','',
array(
'empresa' =>array ('name'=>'empresa','type'=>'xsd:string')
,'nome' =>array ('name'=>'nome','type'=>'xsd:string')
,'email' =>array ('name'=>'email','type'=>'xsd:string')
,'ddd' =>array ('name'=>'ddd','type'=>'xsd:string')
,'tel' =>array ('name'=>'tel','type'=>'xsd:string')
,'msg' =>array ('name'=>'msg','type'=>'xsd:string')
)
);
$server->register('cadastrar',
array('dados'=>'tns:cadastro'),
array('return'=>'xsd:string'),
$namespace,
$namespace.'#cadastrar',
'rpc',
'encoded',
'' );
function cadastrar($dados){
return $dados['empresa'];
}
$request = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($request);
?>
E Meu cliente.php
<?php
if ((string)$_GET['action'] == 'get_data') {
// includes nusoap classes
require('lib/nusoap.php');
// $client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl&debug=1', 'wsdl');
$client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl', 'wsdl');
$dados = array(
'empresa' => $_POST['empresa'],
'nome' => $_POST['nome'],
'email' => $_POST['email'],
'ddd' => $_POST['ddd'],
'tel' => $_POST['tel'],
'msg' => $_POST['msg']
);
$result = $client->call('cadastrar', array('cadastro'=> $dados));
if ((string)$_GET['action'] == 'get_data') {
// includes nusoap classes
require('lib/nusoap.php');
// $client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl&debug=1', 'wsdl');
$client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl', 'wsdl');
$dados = array(
'empresa' => $_POST['empresa'],
'nome' => $_POST['nome'],
'email' => $_POST['email'],
'ddd' => $_POST['ddd'],
'tel' => $_POST['tel'],
'msg' => $_POST['msg']
);
$result = $client->call('cadastrar', array('cadastro'=> $dados));
echo $result;
// check for errors
if (!$client->getError()) {
// print results
print '<h1>Current data for: ' . $l_aParam[0]
. ':</h1><ul><li>DEGREES: ' . $l_stResult['degrees']
. '°C</li><li>FORECAST: ' . $l_stResult['forecast']
. '</li></ul>';
}
// print error description
else {
echo '<h1>Error: ' . $client->getError() . '</h1>';
}
}
// output search form
print '
<form name="input" action="'.$_SERVER['PHP_SELF'].'?action=get_data" method="POST">
Your empresa: <input type="text" name="empresa"> <br>
Your nome: <input type="text" name="nome"> <br>
Your email: <input type="text" name="email"> <br>
Your ddd: <input type="text" name="ddd"> <br>
Your tel: <input type="text" name="tel"> <br>
Your msg: <input type="text" name="msg"> <br>
<input type="submit" value="Search">
</form>
';
?>
// check for errors
if (!$client->getError()) {
// print results
print '<h1>Current data for: ' . $l_aParam[0]
. ':</h1><ul><li>DEGREES: ' . $l_stResult['degrees']
. '°C</li><li>FORECAST: ' . $l_stResult['forecast']
. '</li></ul>';
}
// print error description
else {
echo '<h1>Error: ' . $client->getError() . '</h1>';
}
}
// output search form
print '
<form name="input" action="'.$_SERVER['PHP_SELF'].'?action=get_data" method="POST">
Your empresa: <input type="text" name="empresa"> <br>
Your nome: <input type="text" name="nome"> <br>
Your email: <input type="text" name="email"> <br>
Your ddd: <input type="text" name="ddd"> <br>
Your tel: <input type="text" name="tel"> <br>
Your msg: <input type="text" name="msg"> <br>
<input type="submit" value="Search">
</form>
';
?>
Mas sempre que eu envio algum valor me apresenta o seguinte erro:
Error: wsdl error: XML error parsing WSDL from http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl on line 2: Not well-formed (invalid token)
Alguém pode me ajudar?
Ou ser for o caso, se alguem tem uma solução melhor que essa, tipo usando outro tipo de serviço e puder me dar uma ajuda aqui... eu iria agradecer muito!