Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2008, 19h09   #1
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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 :
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
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h48   #2
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Salut

Essaye de remplacer tes \ par des \\

A+
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h48   #3
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
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
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 19h54   #4
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
merci de vos réponses

malheuresement je crois que ca ne marche toujours pas :s

voici ma commande :

Code :
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)
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 21h17   #5
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
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
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 00h30   #6
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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.
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 14h01   #7
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
tu as essayé ces commandes sans passer par php ? dans la console ?
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 14h13   #8
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
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
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 14h24   #9
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 14h35   #10
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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 :
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 ?
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h09   #11
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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 :
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 ?
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h09   #12
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Fais un

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

Voir un

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


bye
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h23   #13
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h38   #14
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
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 ?
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 15h44   #15
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
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
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 16h05   #16
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Normalement oui, http://www.ss64.com/nt/cmd.html

essais de le renommer en .cmd des fois que
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 16h25   #17
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
ç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
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 20h44   #18
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Sinon tu as essayé de faire "start c:/toto/monscript.bat > result.txt" pour voir la sortie un peu ?
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h14.


 
 
 
 
Partenaires

Hébergement Web