Bonjour
Suite à une demande, je dois developper un webservices simples sur serveur php, que j'aurais à terme à appeler depuis Delphi, bien que pour l'instant mon client soit aussi en php.
J'ai, sur une base mysql, une petite table toute simple dans laquelle je voudrais insérer un seul enregistrement.
J'ai donc codé, à partir de plusieurs exemples, et de la FAQ php du site. Voici ce à quoi j'arrive.
Serveur :
Client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <? function ajout($nom,$prenom,$telephone) { $db_server ='localhost'; $db_user ='monuser'; $db_pass ='monpass'; $db_name ='mabase'; $oConn=mysql_connect($db_server, $db_user, $db_pass) or die ('Impossible de se connecter, Problème hébergeur'); mysql_select_db($db_name); $requete='INSERT INTO ws (`id` ,`nom` ,`prenom` ,`telephone`) VALUES ( NULL,\''.$nom.'\',\''.$prenom.'\',\''.$telephone.'\');'; // $requete; $res=mysql_query($oConn,$requete); return mysql_error($oConn); mysql_close($oConn); } try { $server = new SoapServer(null, array ('uri' => 'http://monserveur')); $server->addFunction('ajout'); $server->handle(); } catch(Exception $e) { echo "Exception: " . $e; } ?>
J'essaie de donc de faire une "simple" insertion, mais rien ne se passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?php try { $clientSOAP = new SoapClient( null, array ( 'uri' => 'urlduservice', 'location' => 'urlduservice', 'trace' => 1, 'exceptions' => 0 )); $ret = $clientSOAP->__call('ajout', array ('nom'=>'titours','prenom'=>'254','telephone'=>'+33555555555')); echo $ret.'<br>'; echo $clientSOAP->__getLastResponse(); echo '<br>'; echo $clientSOAP->__getLastRequest(); } catch(SoapFault $f) { echo $f; echo '<br>'; echo $clientSOAP->__getLastResponse(); echo '<br>'; echo $clientSOAP->__getLastRequest(); } ?>
Je ne reçois aucun code d'erreur (j'ai tenté de retourner le texte de ma requete et les éventuels messages d'erreur de mysql), mais l'insertion n'a pas lieu. Par ailleurs, j'ai vérifié l'activation effective de SOAP et SOAP apparait bien enabled dans le Phpinfo.
Il y a peu être des aberrations dans mon code ... mon premier contact avec les webservices datant d'hier après midi ...
Merci d'avance.
Partager