Mit klick auf button PHP script ausführen

Mr. Poe

Lt. Commander
Registriert
Juli 2010
Beiträge
1.812
Hallo,

Wie schaff ich das, das wenn ich auf meiner HTML Seite auf einen Button klicke, das ein PHP script ausgeführt wird, das dann ein Programm auf dem Server startet...?

Das mit dem Programm starten bekomm ich hin... Nur wie geht das mit dem Button?
Ich kenn mich in PHP jetzt nicht gut aus... Das müsste aber eig irgentwas mit Post/get zutun haben oder?

Kann mir damit jemand helfen?

Sent from my Lumia 800 using Board Express
 
Eher:
HTML:
<form method="post" action="script.php">
	<input type="submit" name="sent">
</form>
PHP:
if(isset($_POST['sent'])){
	// ...
}
 
Nimm das von Adam Gontier ist das sinnvollere. Da es beim drücken des Button(sent) per post dein Skript auslöst(script.php)
 
Also...
Wenn ich jetzt mehrere Buttons habe, die verschedene Programme starten... Dann muss ich für jedes Programm, das gestartet werden soll ein eigenes script schreiben?

Sent from my Lumia 800 using Board Express
 
Nein, du kannst alle in ein Script packen, dann brauchst du halt mehrere Buttons/forms um das zu erledigen.
Z.B:
PHP:
$progs=array("a"=>"a.exe","b"=>"b.exe");
foreach($progs as $key=>$t){
echo '<form method="post" action="script.php"><input type="hidden" name="sent" value="'.$key.'"><input type="submit" value="'.$t.'"></form>';
}
Das ergibt dann für jeden Eintrag im Array progs ein Button zum draufklicken.
In script.php kommt dann rein
PHP:
$progs=...;//Das selbe wie oben
if(isset($_POST["typ"])){
$programmname=$progs[$_POST["typ"]];
...//Programm starten
}
 
ok... das funktioniert schonmal ;)

nur jetzt hab ich 2 fragen/probleme:

1. kann man das auch so schreiben, das sich die seite nicht ändert?
also so, das der button auf der seite bleibt und keine neue seite geladen wird...

2. das programm lässt sich nicht starten:
wenn ich in die php datei:
Code:
echo exec('whoami');
reinschreibe, wird das auch ausgeführt und ich bekomme den username angezeigt.
wenn ich jetzt aber mein programm reinschreibe, das ich eigentlich ausführen möchte wird das nicht ausgeführt...

das programm hat mehrere parameter... ist das ein problem?
zum starten des programmes hab ich jetzt
Code:
exec('programm prameter1 parameter2 17 2');
reingeschrieben... das funktioniert nicht.
 
1. Ja, mit Javascript
HTML:
<script>
function start_script(typ,destination){
var xhr=new XMLHttpRequest();
xhr.onreadystatechanged=function(){
if(xhr.readstate==4){
document.getElementById(destination).innerText=xhr.responseText;
}
}
xhr.open("POST","script.php");
xhr.send("typ="+typ);
return false;
}
</script>
<form onsubmit="start_script('typ','ergebnis')">...</form><div id="ergebnis"></div>

2. Kann es sein, dass
1. Du eine Leerzeile am Ende deines Programmes hast => passthru();
2. Dein Programm nicht von PHP ausgeführt werden kann, da falsches Verzeichnis/Rechte?
 
Zuletzt bearbeitet:
Zurück
Oben