Passage d'un client SOAP de PHP à C
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 :
Code:
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);
?> |
Et voici le code de mon client que je souhaite transformer en un client SOAP en C :
Code:
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;
}
?> |
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.
Si quelqu'un peut m'aider à déveleppoer se client SOAP en C pour linux ca serait super cool.