2017-11-19 22 views
-1

Ich möchte eine Website in PHP haben, die ein Programm auf meinem lokalen Computer starten und stoppen kann. Bis jetzt konnte ich das Programm nur herunterfahren, aber ich kann es nicht starten. Es muss auch auf einer externen Maschine (irgendwo anders als in meinem Netzwerk) funktionieren. Die Website auf Wamp Server gehostet wirdProgramm in PHP starten

Mein Code ist:

<?php 
if (isset($_POST['shutdown'])) { 
    $cmd = "taskkill /f /im euroscopefsdserver.exe /t"; 
    shell_exec($cmd); 
} 
if (isset($_POST['start'])) { 
    shell_exec("E:\\Programma's\Euroscope\euroscopefsdserver"); 
} 
if (isset($_POST['restart'])) { 
    $cmd = "taskkill /f /im euroscopefsdserver.exe /t"; 
    $cmd2 = "E:\Programma's\Euroscope\EuroScopeFsdServer"; 
    shell_exec($cmd); 
    shell_exec($cmd2); 
} 
?> 


<form action="index.php" method="post"> 
    <input type="submit" name="start" value="Start"> 
    <input type="submit" name="shutdown" value="Shutdown"> 
    <input type="submit" name="restart" value="Restart"> 
</form> 
+0

Bitte nehmen Sie Sicherheitsfragen nicht leichtfertig. 'E:' sieht komisch aus, 'Programma' ist ausgesprochen falsch. – greybeard

+0

Was meinst du? Dies ist nur mein extra 1TB HDD Laufwerk und der Ordner wo ich meine Programme installiere, weil mein C: Laufwerk nur 250GB SSD ist. –

+0

'E:' sieht "absolut" aus, auch wenn * nicht * gefolgt von '\\ xyz'. Sie erwähnen "Site wird auf WAMP-Server gehostet", aber nicht * PHP-Code wird nie ausgeführt, aber auf ** einem ** Client mit * euroscosfsdserver * installiert in genau diesem Pfad *. Ist der einzelne Apostroph korrekt? Was passiert mit den Backslashes in "the path string literal"? (Testausgabe?) – greybeard

Antwort

0

Um ein Programm auf dem Computer zu starten, die den Web-Server läuft:

<?php 
    exec('"C:\Program Files (x86)\Notepad++\notepad++.exe" "C:\foo.php"'); 
?> 

oder

<?php 
    $file= shell_exec("C:\Program Files (x86)\Notepad++\notepad++.exe"); 
    echo $file."</br>"; 
?> 
+0

Nein, es wird nichts tun, die Seite wird nur die ganze Zeit geladen ... Der Code, den ich eingefügt habe, ist: exec ('' E: \ Programm \ EuroscopeFsdServer. exe "" E: \ Programme \ wamp64 \ www \ fsdserverprogram \ index.php "'); –

+0

Ich kann keine ausführbare Datei in dem Pfad sehen, den Sie gaben – Imm

+0

Edited ... Immer noch nichts ... –