Exec-Befehl für eigene .bat-Datei

Hallo,

ich habe folgendes Problem:

Ich habe mir ein Skript geschrieben, dass über eine bat-Datei VirtualDubMod mit Skript starten soll. VirtualDubMod erzeugt dann eine Video-Datei und diese möchte ich dann wieder im Skript abspielen.

Einzeln funktioniert auch alles, insbesondere ist die bat-Datei richtig. Wenn ich jetzt aber über php exec(„myBat.bat“) aufrufe geht das nicht. Wenn ich zusätzlich noch schaue, ob mein bat-Datei, denn ein ausführbarer Befehl ist (is_Executable(„myBat.bat“)), bekomme ich auch ständig false. Mit passthru geht das auch nicht.

Warum? Hat irgendjemand Ahnung wie ich diese Problem, beheben kann?
Ein Beispielskript wäre sehr nett.

Für später wäre auch noch interessant, ob ich den exec-Befehl umgehen kann (der ist ja sicherheitskritisch) und die VirtualDubMod-Arbeit auch anders oder außerhalb von php starten kann.

Es wäre sehr nett, wenn ihr mir helfen würdet.

Danke,

Georg

Hallo Georg,

was sagt denn der Befehl file_exists(„myBat.bat“)?

MfG Georg V.

P.S.: Ich gehe mal davon aus, dass Du den Webserver auf Windows laufen läßt, aber welches Filesystem verwendest Du (bei FAT können wir Rechteprobleme ausschliessen).

Hallo

Einzeln funktioniert auch alles, insbesondere ist die
bat-Datei richtig. Wenn ich jetzt aber über php
exec(„myBat.bat“) aufrufe geht das nicht. Wenn ich zusätzlich
noch schaue, ob mein bat-Datei, denn ein ausführbarer Befehl
ist (is_Executable(„myBat.bat“)), bekomme ich auch ständig
false. Mit passthru geht das auch nicht.

Unter Windows ist ein Script keine ausführbare Datei. Versuchs doch mal mit exec(‚cmd myBat.bat‘). Eventuell muss es auch ‚cmd /c myBat.bat‘ heißen, einfach mal ausprobieren.

Für später wäre auch noch interessant, ob ich den exec-Befehl
umgehen kann (der ist ja sicherheitskritisch) und die
VirtualDubMod-Arbeit auch anders oder außerhalb von php
starten kann.

Natürlich kannst du das Script auch außerhalb von PHP starten.

Wenn du für den Webserver einen eigenen Benutzer anlegst und diesem nur die wirklich nötigen Rechte gibst, dann kannst du mit dem exec-Befehl theoretisch keinen Schaden am System anrichten. Allerdings kannst du auf sämtliche Webdateien, auch von eventuellen Subdomains o. ä. zugreifen.

Johannes

Also danke erstmal für die Hilfe.

Ich glaube, soweit bin ich jetzt schon, dass mit tatsächlich VirtualDubMod gestartet wird und der selber einen Skript ausführt (hoffentlich, sehen tu ich davon nichts). Das Problem ist, dass der Browser beim Laden der Seite hängen bleibt. Könnt ihr mir dabei nochmal helfen?

Ich benutze wamp unter windows vista mit ntfs-Platte. Der is_executable Befehl gibt true zurück für den Pfad von VirtualDubMod.exe und ich möchte danach ausführen: VirtualDubMod.exe /sVirtualDubModSkript.vcf. Mit der Batch-Datei alleine geht das alles wunderbar, dauert erstmal 5 Sekunden und alles ist fertig. Aber nicht mit php. Der Aufruf ist genauso, ich gebe sogar vor dem externen Aufruf noch was aus, aber nicht mal das sehe ich. Der Browser ist die ganze Zeit auf „Laden…“. Das Problem umgehen mit usleep() geht auch nicht. Mit exec(VirtualDubMod.exe) (vorher mit is_executable geprüft) bleibt der Browser hängen.

Wenn ihr mir nochmal weiterhelfen könntet wäre das sehr, sehr nett.

Denk,

Georg