Bonjour à tous j'ai développé un Webservice assez simple en PHP.
Le client envoie 3 données au service qui analyse celles-ci, va lire sa BDD et renvoie au client une réponse 1 ou 0 en fonction des données que celui-ci lui avait envoyé précédement. SOAP me permet donc de faire une bête fonction POST.
Mais bon voilà j'ai dévelloppé tout ceci pour me familiariser avec SOAP. Je souhaiterai garder mon programme côté serveur en PHP mais par contre je souhaiterai transformer mon programme client PHP en code C pour Linux.
Voici le code de mon serveur :
Et voici le code de mon client que je souhaite transformer en un client SOAP en C :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 <?php include('../lib/nusoap.php'); $serveur = new soap_server; $serveur->debug_flag=false; $serveur->register('CA'); // FONCTION DE CONTROLE D'ACCES function CA($num_site, $num_term, $num_carte) { // CONNEXION AU SERVEUR SQL require("connect_bdd.php"); // SELECTION D'UNE BASE $db_selected = mysql_select_db('ca', $link); if (!$db_selected) { die('Impossible de sélectionner la base de données : ' . mysql_error()); } // REQUETE PERMETTANT DE COMPTER LE NOMBRE D'ENTREE CORRESPONDANT A LA COMBINAISON $requete = mysql_query("SELECT COUNT(num_carte) AS nb FROM autorisation WHERE num_site='$num_site' AND num_term='$num_term' AND num_carte='$num_carte'"); if (!$requete) { die('Requête invalide : ' . mysql_error()); } // RECUPERATION DU RESULTAT DE LA REQUETE $resultat = mysql_result($requete,0); // DEDUCTION DU DROIT D'ACCES EN FONCTION DU RESULTAT if ($resultat==0) { $droit=0; } else { $droit=1; } // RETOURNE LE DROIT return "La <b>carte $num_carte</b> tente de badger sur le <b> terminal $num_term</b> du <b>site $num_site</b>. <br><br> <b>Son droit d'accès est $droit</b>."; // FERME LE SERVEUR mysql_close($link); } $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)? $HTTP_RAW_POST_DATA : ''; // ENVOI LE RETOUR DE LA FONCTION AU CLIENT $serveur->service($HTTP_RAW_POST_DATA); ?>
Voilà, donc mon client se contente d'envoyer 3 variables au service ($_GET['num_site'], $_GET['num_term'] et $_GET['num_carte']). Ici les données proviennent d'un formulaire, c'était pour faire un test, mais imaginons pour faire le prog en C que les 3 valeurs des 3 variables sont inscrites en dur dans le code.
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 <? include('../lib/nusoap.php'); $client = new soapclient('http://127.0.0.1/Webservice_soap/CA/service_CA.php'); $err = $client->getError(); if ($err) { echo '<h2>Erreur de construction</h2><pre>' . $err . '</pre>'; } else { // ENREGISTREMENT DES PARAMETRES $parametres = array('site'=>$_GET['num_site'],'terminal'=>$_GET['num_term'],'num_carte'=>$_GET['num_carte']); // APPEL LA FONCTION DU SERVEUR AVEC LES PARAMETRES $recup = $client->call('CA', $parametres); // AFFICHE LE RESULTAT PROVENANT DU SERVEUR print $recup; } ?>
Si quelqu'un peut m'aider à déveleppoer se client SOAP en C pour linux ca serait super cool.
Partager