1.8k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo zusammen,

ich möchte (aus rein experimentellen Zwecken) folgendes umsetzen:

Ich drücke in einem HTML-Dokument einen Button, welcher eine Javascript-Funktion auslöst. Diese Funktion führt auf der Zielmaschine ein PHP-Skript aus. Das Ergebnis soll an mein Dokument zurückgegeben werden und in einem Container unter dem Button landen. Ich verstehe leider nicht, wo der Fehler liegt (es passiert nichts).

Hier der Quellcode: (ich habe HTML und JS nocht nicht getrennt...)

<html>
<head>
<script type="text/javascript">
function alarm(){
alert('HALLO');
}

var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}

function ausgeben(){
alert('HALLO');
if (http != null) {
http.open("GET", "myscript.php", true);
http.onreadystatechange = ausgeben;
http.send(null);
}
if (http.readyState == 4) {
document.getElementById("Ausgabe").innerHTML =
http.responseText;
}
}
</script>
</head>
<body>
<button onclick="ausgeben()">WERBINICH</button>
<div id="Ausgabe"></div>
</body>
</html>


Die Funktion alert() ist nur zum Testen mit dabei, die wird nämlich korrekt gerufen, lege ich sie auf das onclick-event...
Wie ihr sehen könnt, sollte das vom PHP-Skript zurückgelieferte Ergebnis in dem div-Container unter dem Button landen. PHP funktioniert auf dem Webserver!(Insofern ich das Skript direkt anfrage) Hier das PHP-Skript:

<?php
$output = shell_exec('whoami');
echo "<pre>$output</pre>";
?>


Vielen Dank, wenn jemand weiß, woran es hier hängt.

2 Antworten

0 Punkte
Beantwortet von
Ich drücke in einem HTML-Dokument ...
Hallo, der auch...
Ich habe es nur so überflogen.

Versuche mal mit dem Formular.
Ich testete kurz deine Version, aber mit dem Formular/method="post" und es hat sich was getan.
Aber wie es zu erwarten war, funktioniert das nicht richtig, denn dann will der HTML-Rechner die "myscript.php" (Zielmaschine) mit einem Editor öffnen.
Ist ja klar, auf dem HTML-Rechner läuft doch kein PHP und du willst ja dann mit:
$output = shell_exec('whoami');
echo "<pre>$output</pre>";
ausführen lassen und per "echo" anzeigen.

Wenn du schon so machen willst, dann muss auch die HTML Datei auf dem Zielrechner ausgeführt werden.
Also eine PHP wo du die HTML rein packst und dann sollte sie beispielsweise "HTML-Dokument.php" heißen.
Der Parser weißt ja dann, was er zu tun hat.

Ein anderer Weg wäre dann....nur so gedacht....
Mit der "myscript.php" nichts anzeigen lassen, sondern eine Datei.html erstellen lassen, wo die whoami-Ausgabe steckt.
Diese dann verlinken oder den HTML-Rechner sie ziehen lassen.
<< Keine Zeit um herumzuspielen, also zum Testen ob es so geht. >>

Gruß
0 Punkte
Beantwortet von
die funktion ausgeben ruft sich selbst auf, sowie die datei erfolgreich
angelangt ist, und fordert dann als erstes die datei nochmals an um sich
dann wieder ....

das klingt nicht anch einem sinnvollem konzept
...