EXEC

jcb
Invité n'ayant pas de compte PHPfrance

12 févr. 2008, 17:54

bonjour,

j'exploite les données d'un GPS avec le programme GpsBabel. Comme ce dernier ne fonctionne qu'en ligne de commande, je souhaite développer une interface en PHP.
Pour lancer la ligne de commande qui va bien j'utilise la méthode exec(). Voici ce que celà donne:
exec("gpsbabel -h", $table); retourne toutes les instructions d'aide sans pb.
exec("gpsbabel -t -w -r -i garmin -f /dev/ttyUSB0 -o gpx -F dimanche_10_02_08.gpx");
retourne un message d'erreur du type pas de connexion avec le gps (en mode ligne de commande, la me instruction fonctionne normalement. Il s'agit d'une suite d'instructions destinées à récupérer les données pour les enregistrer sur un disque)
J'ai essayé les alternatives à la méthode exec(), sans succès. J'ai écrit un fichier batch: lancé en ligne de commande tout fonctionne et échoue lorsqu'il est lancé par exec.

La fonction exec() ne peut elle lancer que des instructions simples? sinon comment faire ?

avec mes remerciements anticipés

ViPHP
ViPHP | 4674 Messages

13 févr. 2008, 00:44

Est-ce qu'on pourrait voir l'erreur exactement :-k ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

17 févr. 2008, 12:21

Bonjour,

le code retourné est 157. On obtient la même erreur en lançant l'instruction de transfert, sans connecter le GPS.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 févr. 2008, 15:07

La fonction exex() sert a faire exécuter une commande par le système, et à ma connaissance, php se moque royallement de savoir si cette commande est simple ou complexe... (et y a pas beaucoup plus simple comme commande que de demander l'exécution d'un shell :))

La question que tu dois te poser à mon avis, est de savoir pourquoi est-ce que toi, quand tu es connecté avec ton compte à toi et tes permissions à toi, tu arrives à exécuter la commande, alors que quand c'est php qui tente de l'exécuter avec son compte et ses droits à lui, il n'y parvient pas :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

17 févr. 2008, 22:55

merci pour ta réponse mais ce qui me gêne dans ce cas c'est pourquoi une instrucion de tupe - help fonctionne avec exec et pas les autres ?