per klick, programme öffnen

droni

Erfahrenes Mitglied
Moin,
ist es möglich mit php Programme zu öffnen?

Also ich wollte mir eine lokale Seite basteln, wo ich nur als Beispiel den Link "Explorer"
habe. Wenn man drauf klickt, soll sich der explorer öffnen.

Laut Google soll das mit den Befehl "system" gehen, Habe alles mögliche ausprobiert.
Irgendwo stand auch man soll system("c:\windows\explorer.exe) machen. Aber dann rödelt sich der apache kaputt.

Gibt es da eine Möglichkeit?
 
Ich denke mal (und hoffe!) dass das nicht geht. Denn du willst ein Programm, ohne abfrage, starten. Verstehe ich das richtig?
Jetzt stell dir mal vor, wenn das über einen Browser funktioniert, was das für eine Sicherheitslücke wäre...
Falls ich mich irre, bitte ich um Auflösung - könnte die Antwort gebrauchen :)
 
Im IE würde sowas evtl. gehen mit ActiveX, bzw. und/oder JScript ( nicht JavaScript ), aber das auch nur aufgrund der Sicherheitslücken oder lockeren Einstellung zur Systemsicherheit seitens MS.

UND mit PHP hat das absolut null zu tun weil PHP ist serverseitig und dein/ein PC clientseitig...
 
ja, wenn ich das so mache:
echo "<a href=\"#\" onClick=\"VBScript:CreateObject('WScript.Shell').Run('explorer.exe')\">drück hier hin</a><br>";

und an meinem anderen pc die seite als "vertrauenswürdig" einstufe geht es auch, aber nicht auf meinem eigenen Rechner.
Ich habe auch localhost, meine ip und 127.0.0.1 als vertrauenswürdig eingestuft. auch das geht nicht.

Ich weiß das PHP server-seitig ist, aber ich will das ja hier aum meinem Rechner machen.
Server-PC == Client-PC.
 
Zuletzt bearbeitet:
Dann schau Dir doch mal die Funktionen [phpf]exec[/phpf], [phpf]shell_exec[/phpf] oder [phpf]system[/phpf] an. Ich denke mal, die funktionieren alle nicht im Safemode.
Du solltest Dir vor allem aber auch Gedanken darüber machen, dass Du diese Funktionen nicht ausführst, wenn die Client-IP nicht die IP Deines Rechners ist.

Edit: Du solltest die Backslashes Escapen, wenn Du den String in Anführungszeichen setzt.
 
Ja, dass das mit dem Befehl "system" gehen soll habe ich ja schon gelesen. Escapen habe ich auch schon gemacht. Es nützt einfach nichts :(
 
Beitrag in den Kommentaren im PHP-Manual zu system hat gesagt.:
I almost gave up trying to get Windows XP w/ Apache 2 to use either system(), or exec() to run a batch file.

If the batch file was this...

echo test > test.txt

it would work fine, creating test.txt...

but if the batch file was..

iexplore.exe "http://www.ibm.com"

I would get nothing. After hours and hours of messing around with this I figured it must be some type of permission problem. (dugh!)

Long story a little shorter.. You have to give Apache permission to "interact with the desktop".

Here's how...

Start>Run>services.msc
Right click "Apache...", select properties.
Click on the "LOG ON" tab
Check the box "Allow this service to interact with desktop"
Click OK
Restart Apache

Works great!
:D

HOPE THIS HELPS SOMEONE!
Too bad I didn't find a post like this before I figured it out myself. (I could have been working on something.)
Damit gehts bei mir, allerdings macht er immer noch 'ne DOS-Box auf und das Skript läuft erst weiter, wenn (in meinem Test) Notepad geschlossen ist.
Ich habe übrigends normale Slashes genommen und keine Backslashes, das ganze unter Win2k versucht.
Irgendwo in der Hilfe zu [phpf]system[/phpf] oder einer der ähnlichen Funktionen stand auch etwas dazu, wie man es macht, dass PHP nicht auf das Beenden des Programms wartet. Wie man das mit der DOS-Box wegbekommt weiß ich aber auch nicht, aber viellecht findest Du ja was. Eine Möglichkeit wäre vielleicht das ganze über den Umweg mit cmd zu starten, da gibt es meines Wissens irgendwelche Parameter, dass cmd keine Box öffnet.

Gruß hpvw
 
aha,

mit dieser Einstellung funktioniert der oben genannte Befehl: echo "<a href=\"#\" onClick=\"vbscript:CreateObject('WScript.Shell').Run('explorer.exe')\">drück hier hin</a><br>"; wunderbar.

Danke für eure Hilfe!
 
Zurück