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

Signaler
Messages postés
8
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
21 avril 2008
-
Messages postés
8
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
21 avril 2008
-
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

Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
1
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
Messages postés
8
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
21 avril 2008

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.
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
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.
Messages postés
8
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
21 avril 2008

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 .
Messages postés
571
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
12 juillet 2012
3
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.
Messages postés
8
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
21 avril 2008

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 ?
Messages postés
8
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
21 avril 2008

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 .