Appeler programme C++ avec des paramétres via PHP

saissi_hssine Messages postés 8 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 21 avril 2008 - 18 avril 2008 à 12:29
saissi_hssine Messages postés 8 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 21 avril 2008 - 21 avril 2008 à 10:09
Bonjour ,

J'ai un problème qui m'as bloqué ça fait 3 jours maintenant, voici mon problème:
j'ai un fichier test.cpp ou il y a que le main

int main (int a)                                                                                        
{
...
return(a)
}
ce que je veux, c'est d'appeler ce programme c++ en php avec un entier comme paramètre pour faire du traitement après.

Je vous remercie pour votre patience ainsi que votre compréhension.                                 

7 réponses

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
18 avril 2008 à 13:08
Bonjour,
Ca marche pas comme ça ! la fonction main() supporte certains paramètres imposés, classiquement int main(int argc,char** argv) où argc nombre de paramètres de la ligne de commande (y compris le programme lui-même) et argv tableau de pointeurs sur chacun des paramètres (1er paramètre = nom du programme, ...).

int main(int argc,char** argv)
{
   if (argc != 2) return 0; // si pas de paramètre
   int a = atoi(argv[1]);
   ...
   return a;
}

Jean-François
0
saissi_hssine Messages postés 8 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 21 avril 2008
18 avril 2008 à 13:17
Premiérement je te remercie pour ta réponse, c'est trés gentil de ta part, deuxiément ce que t'as dit est vrai mais je voulais juste donné un exemple simple et on plus tu peux tester mon exemple avec devc++ ca marche même si t'as donné un int comme paramétre.
mais en fait mon but c'est de chercher plutot un moyen pour appeler ce prog c++ en php avec un paramétre, car en fait il faut récuperer un num de téléphone saisi par l'user dans une page php, et tu peux pas lui donner de saisir ca en c++ c'est marron et ca ce fait pas en Web services, alors si tu connais un moyen ca me fait plaisir, et si tu vois une autre solution soyez les bienvenues.

Merci bro.
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
19 avril 2008 à 19:33
Salut,

Voir  http://fr3.php.net/function.exec











#include <stdio.h>

int main(int argc, char *argv[])
{
 if (argv[1])
  printf(" argument: %s", argv[1]);

 return 0;
}









<?php
$t = array();






exec('1.exe bonjour', &$t);
echo $t[0];
?>





Autre solution plus propre: déposer ton exe dans le dossier cgi-bin si le serveur web est configuré pour.
0
saissi_hssine Messages postés 8 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 21 avril 2008
19 avril 2008 à 19:44
Merci beaucoup mon ami, je vais tester ca et je te réponds,dans tous les cas c'est gentil de ta part, Concernant le dernier truc que tu m'as dit, j'ai pas bien saisi cgi_bin, ce que j'ai compris est de déposer mon exe compilé du c++ dans le répertoire D:\Program Files\EasyPHP 2.0b1\cgi-bin, si c'est ca aprés qu'est ce qu'il faut faire ?

je te remaercie de ta compréhension, mais je maitrise pas parfaitement PHP .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
19 avril 2008 à 19:57
Oui attention quand même que dans le cas de CGI compilés l'exe doit se conformer à la spécification CGI:
- si la méthode du formulaire HTML est POST l'exe doit lire sur l'entrée standard n octets, n étant le contenu de la variable d'environnement CONTENT_LENGTH.
- sinon la méthode est GET l'exe doit alors lire la variable d'environnement QUERY_STRING et la découper pour extraire ce qu'a transmis le formulaire au CGI.

Essaie de trouver un tuto sur les CGI compilés pour mettre au point l'exé. Sinon utiliser un exe + interpréteur PHP ça fait un peu lourd.
0
saissi_hssine Messages postés 8 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 21 avril 2008
19 avril 2008 à 20:00
Oui mon ami, ce que je voulais faire exactement et tout simplement et de poster un numéro de téléphone via un script php, et aprés l'envoyer à mon code c++ comme paramétre pour faire des traitements avec, tu vois ami une bonne solution ?
0
saissi_hssine Messages postés 8 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 21 avril 2008
21 avril 2008 à 10:09
Bonjour ;

Merci beaucoup mon ami katsankat, ta solution  a trés bien marché , t'es vraiment costo  .

il faut juste enlever la réference du tableau ou bien modifier un paramétre dans le php.ini afin qu'il accepte le passage par réference .

Merci encore une fois mon ami et tous les personnes qui m'ont aidés avant .
0