Externe Programme ausführen

M

MissNiedersachsen

Ich habe versucht, mit folgendem Code über einen lokalen Webserver (OmniHTTPd) ein Programm zu starten:
PHP:
<html> 

<head> 
<script> 
function programm(path) { 
document.write('<?php exec(\''+path+'\'); ?>'); 
} 
</script> 
</head> 

<body> 
<a href="#" 
onclick="programm('c:\\Game\\Tetris\\Tetris.exe');">Tetris</a> 
</body> 

</html>

Leider erscheint lediglich die leere Seite, auf die der Hyperlink verweist (about:blank#), das Programm wird nicht gestartet. Habt Ihr eine Idee, wo der Fehler liegen könnte - oder anders gefragt: kann das überhaupt funktionieren ? Vielen Dank für Eure Hilfe.
 
Is ja klar, PHP wird immer beim Aufruf das Dokumentes verarbeitet nie danach.

Du musst es per Link machen:
PHP:
#index.php:


<?php
if (isset($_GET["programm"])) exec($_GET["programm"]):
?>

<html> 

<body> 
<a href="index.php?programm=c:/Game/Tetris/Tetris.exe">Tetris</a> 
</body> 

</html>
 
Zuletzt bearbeitet von einem Moderator:
Danke für den Tipp, aber irgendwas mach ich noch falsch. Wenn ich auf den Hyperlink der HTML-Datei klicke, öffnet sich zwar die PHP-Datei und laut Dokumentation des Webservers wird auch der Variableninhalt übergeben, aber das Programm startet nicht. Woran könnte das liegen ?
 
Hat der Webserver überhauopt Zugriff auf C?

Du musst das document-root-Verzeichnis des Webservers auf C: stellen.
 
Ja, der Server hat Zugriff auf die Festplatte (Server Root 'c:'). Ich kann mir nicht erklären, warum's nicht funktioniert ...
 
Leider funktionierts auch so nicht, ich habe als Trennzeichen im Pfad schon /, //, \ und \\ probiert, jeweils mit und ohne Apostroph.

php-Datei:
PHP:
<?php
if (isset($_GET["programm"])) exec($_GET["programm"]);
?>

<html> 
<body> 
</body> 
</html>

html-Datei:
PHP:
<html> 

<body> 
<a href="index.php?programm=c:/Game/Tetris/Tetris.exe">Tetris</a> 
</body> 

</html>

Beide Dateien liegen auf C:, auch das Root-Verzeichnis des Servers ist auf C: eingestellt. Wenn ich auf den Hyperlink "Tetris" klicke, erscheint eine leere Seite, in der Adressleiste erscheint: http://localhost/index.php?programm=c:/Game/Tetris/Tetris.exe

Könnt Ihr euch noch einen anderen möglichen Fehler vorstellen ?
 
wenn du win2000 benutzt probiers mal so:
exec('c:\\WINNT\\system32\\cmd.exe /c START c:\\Game\\Tetris\\Tetris.exe');

keine ahnung ob das unter xp auch so läuft
 
Wenn das Rootverzeichnis C ist, dann versuchs mal so:
PHP:
<a href="index.php?programm=./Game/Tetris/Tetris.exe">Tetris</a>

Ps: Du kannst in dem Fall den PHP Code in die HTML Datei reinschreiben (dann natürlich in .php umbenenne) und auf diese Datei verlinken.
 
Es ist zum verzweifeln, auch so funktioniert's nicht. Der Pfad erscheint zwar in der Adressleiste des Explorers (http://localhost/open.php?programm=./Game/Tetris/Tetris.exe), das Programm wird jedoch nicht gestartet.

Folgendes erscheint in der Dokumentation des Webservers:
127.0.0.1 localhost - [15/Jul/2003:20:54:48 +0200] "GET /open.php?programm=./Game/Tetris/Tetris.exe HTTP/1.1" 200 - "http://localhost/open.php?programm=./Game/Tetris/Tetris.exe" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DT)"
[Standard CGI Launch] WorkPath: C: CmdLine: "C:\HTTPD\PHP\PHP.EXE" "C:\open.php" Args: programm=./Game/Tetris/Tetris.exe Path Info: /open.php


Vielleicht hast Du noch irgendeine Idee, woran's liegen könnte.
 
Zurück