exécution de fichier .bat

Invité
Invité n'ayant pas de compte PHPfrance

11 juil. 2006, 14:25

bonjour à tous,

j'aimerais lancer un bat dans mon script. J'ai essayé exec et system mais à chaque fois la page essaye de se charger sans y arriver en fin de compte ...

dans mon bat, à part un "cd", je lance la commande htpasswd d'apache2 (dans bin/)

ce serait sympa si vous pouviez m'aider ...

Invité
Invité n'ayant pas de compte PHPfrance

11 juil. 2006, 15:03

j'ajoute que le safe_mode est désactivé et que le bat ne se situe pas dans un répertoire avec un htaccess ...

Invité
Invité n'ayant pas de compte PHPfrance

11 juil. 2006, 16:30

je viens de voir que le .bat s'exécute bien, je vois bien le processus s'ouvrir dans le gestionnaire de tache. mais le problème est que je ne vois pas l'invite de commande.

je mets exactement exec('start fichier.bat parametre');

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 juil. 2006, 19:44

Bonjour,

Cela est normal, les processus qui tourne en tâche de fond n'ont par défaut pas le droit d'interragir avec l'espace graphique.
C'est une option à activer dans Windows mais je ne sais plus où...

##edit :
> Run - services.msc. Right click on your Apache service - select
> Properties and then the Log on tab. Check - Allow service to interact
> with desktop
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2006, 08:40

ok merci, j'ai fait ça, mais je ne vois toujours rien... je pense qu'il y a une liaison à faire entre les 2, mais comment ??

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

12 juil. 2006, 10:58

Plutot que de faire apparaitre une fenêtre, tu peux faire ça en PHP
$fichier = '/path/to/.passwd';
$login = 'username';
$pass = 'password';

$options = 'bm'; // b = mdp en paramètre, m = force md5
if (!is_file($fichier)) $options .= 'c'; // nouveau fichier
`/path/to/htpasswd.exe -$options "$fichier" "$login" "$pass"`;