PHP et exec() sous Windows

Nouveau WRInaute
Bonjour,

J'ai créé un programme en C# qui prend en paramètres un fichier en entrée et un fichier en sortie qui permet de convertir le fichier en entrée en pdf. Tout ça marche nickel en ligne de commande.
Ensuite j'ai un site Internet (hébergé chez moi, sous Vista avec Wamp 2.0). A un moment je fais un appel à mon script grâce à la fonction "exec()" mais là rien ne se passe comme il faut.
Le programme est bien appelé, mais une fonction plante dans mon code C#. C'est une fonction d'ouverture de fichier : je teste que le fichier existe, et si c'est le cas je l'ouvre. Le test est positif, le fichier existe bel et bien mais l'ouverture plante... alors que tout fonctionne en ligne de commande.
Je me suis dit que c'était peut-être une histoire de droits, mais je devrais pas avoir ce problème sous Windows non ?
Si vous avez une idée, je suis preneur...
Merci
 
Nouveau WRInaute
En gros en ligne de commande c'est :
WordConverter.exe <in.doc> <out.pdf>
(faut que in.doc soit dans le même répertoire que WordConverter)
Et en PHP ça donne (une fois dans le même répertoire que WordConverter avec chdir) :
passthru("WordConverter.exe in.txt out.pdf"); ou exec, ou system... c'est tout pareil, ça marche pas.

Bon un pote vient d'essayer chez lui, ça marche avec XP mais chez moi avec Vista marche pas. Je pense de plus en plus aux droits utilisateur...
 
WRInaute passionné
ouai c'est probablement vista qui bloque

faudrait voir dans les logs erreurs php si il y a eu une entrée

voir dans les incidents vista

et certainement aller dans les services pour retoucher le service apache en commençant à l'autoriser à interagir avec le bureau ce qui te donnera peut etre un prompt pour l'execution de ton prog

rog
 
Nouveau WRInaute
J'ai rien de spécial dans le log d'erreur de php et j'avais déjà autorisé Apache à interagir avec le bureau mais rien n'y fait... J'ai donné le "contrôle total" dans les paramètres de sécurité à tous mes fichiers et répertoires utilisés, mais ça ne change rien
 
WRInaute passionné
alors c'est peut etre la methode que tu emploies pour passer les parametres

sous windows des fois c'est capricieux

une de mes fonctions

Code:
if(stristr($_SERVER['SERVER_SOFTWARE'],"win"))
		{
		$cmd = $_ENV['antivirus']['path'][$_REQUEST['antivirus']].' '.str_replace('%target%',escapeshellarg($target),$_ENV['antivirus']['arg'][$_REQUEST['antivirus']]);
		
		
		
		
		
				 $handle = popen($cmd.' 2>&1','r'); 
	#		
    while($read = fread($handle,100)) 
		{ 
        echo nl2br($read); 
		//fwrite($fp,$read);
		flush();
		#
        } 
 	pclose($handle);

je presume que je n'ai pas besoin de la commenter

rog[/quote]
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut