8795 sujets

Développement web côté serveur, CMS

Bonjour,

j'aimerais lancer un .exe grâce à un script php

mon code php :

if($_GET['test'] == 2)
{
      exec('"C:/Mes projets/MoxaExe/Exe/moxa.exe" contact2');
}


Donc si j'ai ma variable test=2 en url, j’exécute un programme qui se trouve dans un fichier exe, je lui passe en paramètre contact2
la commande fonctionne sous cmd

Alors j'ai essayé de chercher un peu partout, certain disait qu'il faut activer "interagir avec le bureau" dans le service de wampapache.
Seulement le problème persiste.
j'ai vue ailleur qu'il faut ajouter 2>&1 à la fin de la commande, seulement, vue que je passe un paramètre contact2, je ne sais pas où le mettre.

voila pour info, mon code s’exécute sans erreur mais le .exe ne se lance pas (même dans le gestionnaire des tâches)
Première question: as-tu bien le droit d'exécuter ce programme, et la fonction exec est-elle bien autorisée ?
En principe, les hébergeurs désactivent exec, c'est beaucoup trop dangereux pour eux.


Deuxième question: obtiens-tu des erreurs ? Ou bien quel est le code d'erreur retourné par exec (voir le 2ème paramètre de la fonction passé par référence) ? Ca devrait être le premier réflexe à avoir avant de demander de l'aide.

Autre chose qui me frappe tout de suite, tu es sous windows; tu devrais utiliser le \ plutôt que le / dans les chemins; il y a des cas où les deux sont indifféremment acceptés, mais ce n'est pas toujours vrai.
En fait pour répondre à tes questions,

je suis sur un serveur perso je fais des tests !!! donc je suis autorisé a lancer l’exécutable vue que c'est moi qui la développer.

je ne sais pas si la fonction exec est autorisé et comment savoir si elle l'est?

Dans mon premier post à la fin j'indique bien que je n'obtiens pas d'erreur, je lance l'appel à mon script php, j'obtiens une page blanche, j'ai essayé avec les \ et les \\ et les / aucune différence et pas d'erreur.

j'ais mis une variable en deuxième paramètre de la fonction qui doit me retourner un tableau mais j'ai un array() vide, idem lorsque je lance uniquement l'apps sans lui donner un paramètre !! donc peut être vois si la fonction est autorisé mais je ne voix pas comment faire. PHPINFO ????
Modifié par cid5420 (21 Jul 2014 - 20:28)
a écrit :
je ne sais pas si la fonction exec est autorisé et comment savoir si elle l'est?

Elle ne doit pas apparaître dans DISABLE_FUNCTIONS, et les options de pseudo-sécurité genre SAFE_MODE ne doivent pas être activés. Tu peux voir tout ça dans le phpinfo.

Si tu es en local sur WAMP et que tu n'as rien configuré de particulier, aucune fonction n'est désactivée, donc ce n'est apparament pas ça le problème.

a écrit :
Dans mon premier post à la fin j'indique bien que je n'obtiens pas d'erreur, je lance l'appel à mon script php, j'obtiens une page blanche, j'ai essayé avec les \ et les \\ et les / aucune différence et pas d'erreur.


La fonction exec renvoie true si elle réussit et false si elle échoue, commence par voir ce qu'elle retourne. De plus, le troisième paramètre (et pas deuxième, je me suis trompé tout à l'heure, désolé) te retourne par référence le code d'erreur résultant de l'exécution (oupas) du programme. Avoir déjà ces deux retours permettra d'en savoir un peu plus sur ce qui se passe. Ca peut être tout bêtement que le fichier n'est pas trouvé, ou que l'accès est refusé... les espaces dans les chemins d'accès, ce n'est généralement pas trop recommandé.