IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Executer ma commande perso


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut Executer ma commande perso
    Bonsoir,
    je voudrai savoir comment je dois interpreter le résultat que j'ai sur ma page web.
    J'ai mis un executable sur mon site, et je l'execute grâce à system.
    Je test donc, mais je nai aucun retour d'affichage...
    Dois-je comprendre que je n'ai pas le droit d'executer mon executable, ou dois-je me reporeter vers une nouvelle fonction en php ?

    je me questionne, j'aimerai savoir, c'est important, selon ce qui se passe actuelement et de ce que vous me direz, je changerai sans doute d'offre. Mais sans doute est ce moi qui ne sait pas executer une commande

    Voilà merci d'avance !

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    1) sans code difficile de savoir si tu l'as correctement codé ou non
    2) as-tu activé la gestion des erreurs dans le php.ini ?

  3. #3
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Je te conseil de plutôt utiliser exec().

    Citation Envoyé par dafpp
    Dois-je comprendre que je n'ai pas le droit d'executer mon executable
    Il te suffit de l'exécuter en ligne de commande pour savoir si il fonctionne bien.

    Si ton programme s'appelle "monProgramme.exe" et qu'il dispose d'une option -v pour la version alors tu peux l'exécuter ainsi :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    exec('monProgramme.exe -v', $output);
    var_dump($output);
    ?>
    A savoir que si tu ne redirige pas le flux de sortie à l’extérieur de la page (comme c'est le cas dans mon exemple) le reste du code de la page serra en attente de la fin d'exécution du programme.

  4. #4
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    Moi je voudrai avoir le retour de résultat, mais rien ne s'affiche sur la page, et j'avais testé aussi exec.

  5. #5
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    Et ton niveau d'erreur PHP est-il réglé pour afficher les erreurs ou pour les masquer ?
    Car par exemple si la commande exec() est désactivée sur ton hébergeur... Ou que tu renseignes un chemin incorrect... Bah erreur mais normal d'obtenir une page blanche.

  6. #6
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    pardon de répondre aussi tardivement:
    j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('display_errors', 1);
    pour afficher les erreurs, mais je n'ai aucune erreur :s

    j'ai ça comme code actuelement pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     
    exec ("./test", &$output, &$val);
     
    echo "<pre>" . $output . "\n" . $val . "</pre>";
     
    ?>
    avec un executable devant simplement afficher 'Hello world' et j'ai comme résultat:


  7. #7
    Membre confirmé Avatar de humitake
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 399
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Normalement à moins que tu n'ai une erreur, avec ce que te t'ai données tu devrais avoir le retour de ton programme dans le var_dump().

    En parcourant la doc d'init_set() je suis tombé la dessus :

    Bien que display_errors peut être défini en cours d'exécution (avec la fonction ini_set()), il n'aura aucun effet si le script a des erreurs fatales, car l'action désirée au moment de l'exécution ne sera pas exécutée.
    Edit : Ah je viens de voir que tu a modifié ton message.

    Donc en fait tu as correctement le retour de ta requête. En fait $output est un tableau, essaye de mettre $output[0] et tu devrais avoir un affichage.

    Dans ton tableau tu as une ligne de retour de résultat par case dans ton tableau.

  8. #8
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    Bah elle fonctionne bien alors cette exécution...
    Bon à part que je vois pas trop ce qu'est le code retour 126 mais passons...

    Pour ton problème de lecture du résultat, voir réponse ci-dessus.
    Et tu aurais pu le prévoir, cf la doc :
    string exec ( string $command [, array &$output [, int &$return_var ]] )

  9. #9
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    je l'avais fait - output[0]:
    Notice: Undefined offset: 0 in /index.php on line 5

    126
    donc erreur fatale étant donné qu'ici le message d'erreur s'affiche correctement.

  10. #10
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    Bon en fait cette erreur doit être du parce que l'array est vide.
    En effet le retour 126 indique que l'exécutable ne peut être exécuté. Problème de droit ?
    Ou bien ce n'est pas un exécutable correct ? Arrives-tu à l'exécuter via un shell ?

    If a command is found but is not executable, the return status is 126.

  11. #11
    Membre habitué Avatar de dafpp
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 345
    Points : 196
    Points
    196
    Par défaut
    ok, et oui j'arrive à l'executer, j'ai le droit à un 'Hello World'.
    c'est donc de mon hebergeur. Je suis sur OVH, j'avais demandé sur le forum, mais la seule personne qui m'avait répondu me disait que l'execution d'executable personnel (rajouté), marchait avec la version pro, et qu'il ne savait pas sur la version perso.
    Donc je vais me rediriger vers la version pro lors de mon renouvelement (sans doute).

    merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 21
    Dernier message: 08/08/2005, 11h57
  2. [Debutant(e)][Système]Executer une commande DOS
    Par iceman dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 18/05/2004, 14h30
  3. [.bat][FOR][IF]executer plusieurs commandes a la suite
    Par ¤FRIX¤ dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 23/03/2004, 09h24
  4. odre d'execution de commande
    Par marsupile dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/02/2004, 13h57
  5. Réponses: 3
    Dernier message: 02/09/2002, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo