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 :

[Système] Commande exec() pour commande système


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut [Système] Commande exec() pour commande système
    Bonjour,

    je souhaite tout simplement par l'intermediraire de ma page php lancer un programme java à l'aide de la commande java.

    Les deux commandes dos principales sont :

    cd C:\Documents and Settings\nto\Mes documents\eclipse\Workspace\pdfsign\bin (pour me placer dans le repertoire qui contient le fichier java)

    et ensuite

    java sign_pdf (pour le lancer)

    elles marchent tres bien sous dos et j'obtient le résultat attendu mais en php, voisi comment je m'y prends et rien ne se passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo exec("cd C:\Documents and Settings\nto\Mes documents\eclipse\Workspace\pdfsign\bin");
    echo exec("dir");
    echo exec("java sign_pdf");
    la commande dir c pr vérifier qu'il soit bien dans le bon répertoire
    les commandes fonctionnent puisqu'il m'affiche le résultat de la commande dir (tout du moins la derniere ligne du résultat, si quelqu'un sait d'ailleurs comment afficher le résultat total je suis preneur).

    Visiblement, la premiere commande ne fonctionne pas, et je ne comprends pas pourquoi

    merci d'avance, c'est tres ugrent

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Salut

    Essaye de remplacer tes \ par des \\

    A+

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Pour la première commande , il faut doubler les antislashes sinon ils sont considérés comme un caractère d'échappement .
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    merci de vos réponses

    malheuresement je crois que ca ne marche toujours pas :s

    voici ma commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo exec("cd C:\\wamp\\www\\projet\\pdfsign\\bin");
    (oui le chemin n'est plus le meme j'ai mis le dossier autrepart pour que ça soit moins lourd)

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par Antho13 Voir le message
    maheuresement je crois ke ca ne marche tjs pas :s
    Il va falloir préciser , erreurs , messages etc ...
    merci
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    et bien il n'y aucun message d'erreurs.

    en fait le but est simplement de remplir un formulaire avec des informations classiques sur un utilisateur à partir de l'index.html puis de les faire suivre a pdf.php qui crée un fichier pdf dans un répertoire de ma machine (ca ca marche). Cette page contient également les commandes systeme que je souhaitent faire fonctionner pour appeler un programme java qui me permet de le signer numeriquement. qui se trouve donc dans C:\\wamp\\www\\projet\\pdfsign\\bin

    Ma page php se charge correctement mais je pense qu'il n'arrive tout simplement pas a aller dans le repertoire bin (ou se trouve mon fichier java).

    Je ne comprend pas je dois faire une erreur de syntaxe.

  7. #7
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu as essayé ces commandes sans passer par php ? dans la console ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Hm. Je ne suis pas certains que exec ouvre un shell.
    J'entends par là que tes trois exec consécuritfs s'executent, d'après moi, dans trois sessions DOS différentes.

    A ta place je générerais un fichier BAT que j'executerais avec une unique commande exec.
    Et accessoirement, soit tu evites les noms de dossiers avec des espaces (windows oblige...), soit tu utilises les noms courts de ces dossiers avec espaces.
    Faire un dir /X sous dos (si ma mémoire est bonne) pour consulter les noms court.

    bye

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    les commandes dans la console fonctionne tres bien c'est en php que ça ne marche pas.

    ok kaymak je vais essayer.

    je vous tiens au courant

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    Alors voici ce que j'ai fait :

    j'ai placé le .bat dans le meme repertoire que mon .java il contient donc :

    java pdf_sign


    et voici comment je le lance en php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $command = "c:\\wamp\\www\\projet\\pdfsign\\bin\\sign.bat";
     
    exec($command);
    ça ne fonctionne pas :s

    est ce que quelqu'un voit mon erreur ?

    merci

    PS: quand je met echo exec($command); au lieu de exec($command); il m'affiche :

    C:\wamp\www\projet>java sign_pdf

    est ce que vous comprenenez ce que ça veut dire ? il n'arrive pas à aller au dela du repertoire projet ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    Bon j'ai lu sur un forum que pour lancer un .bat sans probleme a partir de php il fallait de préférence :

    - placer le .bat dans un dossier pas trop loin de la racine sans espace dans le chemin
    - pas de safe mode (mais je ne sais pas ske c)

    alors ça a l'air darranger les choses

    voila mon .bat:

    cd c:\wamp\www\projet\pdfsign\bin
    java sign_pdf

    et voila mon bout de code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $command = "start c:\\temp\\sign.bat";
     
    exec($command);
    il a l'air de se passer quelquechose mais lorsque la page php se charge, le .bat n'a pas l'air de se lancer et le chargement de la page bloque sans fin ... :s

    je ne compren pas ce qu'il se passe

    vous avez une idée ?

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Fais un

    cmd c:\\wamp\\www\\projet\\pdfsign\\bin\\sign.bat

    Voir un

    cmd /C c:\\wamp\\www\\projet\\pdfsign\\bin\\sign.bat


    bye

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    tu veux dire $command = "cmd c:\\temp\\sign.bat"; ou
    $command = "cmd \C c:\\temp\\sign.bat"; ?

    ça n'a pas l'air de marcher :s

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    oui c'est ca. L'ayant déjà fait sur du 2003, sa devrait fonctionner. Si tu le fais dans un fenetre de command sa ne fonctionne pas non plus ?

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    ben euh la commande cmd marche dans la fenetre de commande mais ça ne me lance pas le .bat tu es sur que c'est cmd ? cmd m'indique la version de windows ...

    merci en tout cas

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Normalement oui, http://www.ss64.com/nt/cmd.html

    essais de le renommer en .cmd des fois que

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    ça ne marche vraiment pas la commande CMD... :s
    il ne se passe rien

    Je n'arrive toujours pas à lancer mon programme java par php...
    meme en me servant d'un .bat appelé par la commande exec.
    je desespere

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Sinon tu as essayé de faire "start c:/toto/monscript.bat > result.txt" pour voir la sortie un peu ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/12/2012, 13h52
  2. EXEC:SQL command EXEC no valid
    Par impactcollege dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2010, 10h52
  3. [Système] Commande exec distant
    Par fifi774 dans le forum Langage
    Réponses: 4
    Dernier message: 04/01/2007, 10h19
  4. [Système] commande exec en arriere plan
    Par dgedge dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 14h45
  5. [Système] commande exec()
    Par Stef784ever dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 10h53

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