I have made a web service: client & server wich works fine in my browser but when I add it into my references, I can't access my function!
here is my code of the web server:
<?php
require 'nusoap.php';
$server=new nusoap_server();
$server->configureWSDL("demo","urn:demo");
$server->soap_defencoding = 'utf-8';
$server->wsdl->addComplexType('getAllKeyData','complexType','struct','all','',
array(
'id'=> array('name'=>'id', 'type' =>'xsd:int'),
'emailadres'=> array('name'=>'emailadres', 'type' =>'xsd:String'),
'familienaam'=> array('name'=>'familienaam', 'type' =>'xsd:String'),
'paswoord'=> array('name'=>'paswoord', 'type' =>'xsd:String'),
'status'=> array('name'=>'status', 'type' =>'xsd:String'),
'voornaam'=> array('name'=>'voornaam', 'type' =>'xsd:String')
)
);
$server->wsdl->addComplexType(
'MySoapObjectArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:getAllKeyData[]')),'tns:getAllKeyData');
$server->register(
'getAllKeys', //name of function
array(), //inputs
array('return'=>'tns:MySoapObjectArray'), //outputs
'urn:getAllKeyswsdl',
'urn:getAllKeyswsdl#getAllKeys',
'rpc',
'encoded',
'Processes an array of MySoapObjects and returns one of them'
);
function getAllKeys(){
$con=mysql_connect('localhost','root','')or die("cannot connect");
mysql_select_db('test')or die("cannot select db");
$sql = 'Select * from personen';
$result=mysql_query($sql,$con);
$out=array();
while($row = mysql_fetch_assoc($result))
{
$out[]=$row;
}
return $out;
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
Of course I tested this with my web client and I can see my data perfectly in arrays:
[0] => Array
(
[id] => 1
[emailadres] => braril.com
[familienaam] => Vandenbogaerde
[paswoord] => test
[status] => aktief
[voornaam] => Bram
)
[1] => Array
(
[id] = 50
[emailadres] => koeaenussel.be
[familienaam] => Christiaens
[paswoord] => HoofdletterH
[status] => aktief
[voornaam] => Koen
)
[2] => Array
(
[id] => 5
[emailadres] => som
[familienaam] => Furler
[paswoord] => Titanium
[status] => aktief
[voornaam] => Sia Kate Isobelle
)
Now I added my webserver into my service references and afterwards I declared my service just like this:
var client2 = new ServiceReference2.demoPortTypeClient();
But my big problem is now that I can't use my function that I made in my web server!
If you have any idea, please help!
problem solved:
$server->register(
'getAllKeys', //name of function
array(), //inputs
array('return'=>'xsd:Array'), //outputs
'urn:getAllKeyswsdl',
'urn:getAllKeyswsdl#getAllKeys',
'rpc',
'encoded',
'Processes an array of MySoapObjects and returns one of them'
);
The return type had to be: xsd:Array