per HTML-Seite Shell-Befehl ausführen und Werte einlesen

  • #1
A

Aziz

Bekanntes Mitglied
Themenersteller
Dabei seit
25.04.2006
Beiträge
127
Reaktionspunkte
0
Hallo Programmierfreunde,

hab ein Problem, das ich leider nicht so ohne weitere Hilfe lösen kann.
ich habe ein ganz normales HTML-Formular. Mit dem Button RUN möchte ich, dass der SHell-Befehl
/usr/bin/test.pl 7072 set Test on
ausgeführt wird und gleichzeitig der Wert des Status mit dem Befehl
/usr/bin/test.pl 7072 list test state
ausgelesen wird und unter dem Formular angezeigt wird.

Wer kann mir da bitte helfen ? Mir fehlt der Ansatz..
 
  • #2
ich habe mittlerweile die HTML-Seite fertig.

Wenn ich den Button RUN drücke, wird eine test.php aufgerufen (noch leer). Und diese Seite soll eben die .pl-DAtei ausführen (wie in dem anderen Beitrag beschrieben)

Wie sieht der Befehl in PHP aus? Kann mir jmd wenigstens das verraten ?
 
  • #3
Ich habe mir folgende Codes gebasteslt!

Code:
<?xml version=1.0 ?>

<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN

  [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>[/url]

<html xmlns=[url]http://www.w3.org/1999/xhtml>[/url]

<head>

<form action=FS20.php method=post>
   

  <input name=test2 readonly value= >

 
 <input type=submit name=abschicken value=einschalten>

  <input type=submit name=abschicken value=ausschalten>

 
 </form>

 </head>

<body>


Code:
<?php


void passthru('/usr/bin/fhem.pl 7072 list test state'[int &$return_var]);

echo $return_var;
if ($_POST['abschicken'] ==->einschalten')

  {

  echo \neingeschaltet;
 exec('/usr/bin/fhem.pl 7072 set test on->);

  }

  elseif ($_POST['abschicken'] ==->ausschalten')

  {  

  echo \nausgeschaltet;
 exec('/usr/bin/fhem.pl 7072 set test off->);

  } ?>


Im Prinzip funktioniert das ganze: Das einzige Problem ist dabei der ursprüngliche Befehl in PHP
exec ('/usr/bin/fhem.pl 7072 list test state');. Der wird zwar wahrscheinlich ausgeführt, aber das bringt nicht viel,denn ich möchte daraus den Wert entnehmen. In Shell gibt dieser Befehl das aktuelle DAtum und den Status ON oder OFF.

Hab bisschen recherchiert und herausgefunden, dass man den Befehl ein bisschen anders schreiben muss, und zwar so:
void passthru('/usr/bin/fhem.pl 7072 list test state'[int &$return_var]);

Dann dachte ich mir, ich könnte den Wert über echo $return_var; auslesen, klappt aber nicht.

Kann mir jmd helfen, wie ich den Wert auslesen kann UND anschliessend direkt in den HTM-Input test2 reinschreiben kann ? Oder vielleicht kann man die beiden Seiten in eine Seite packen ?
 
  • #4
oki, die der Befehl lautet system (...), so lässt sich auch der Inhalt auslesen..

Nun gut, die Frage ist nur, mit dem Reinschreiben dieser Ausgabe in das input-feld test2. Wie bewerkstellige ich denn das ?

und eine zusatzfrage:

Den Befehl test in der unteren Zeile möchte ersetzen könne, je nach dem, was in dem Formular eingegeben wurde. Wie kriege ich das hin..

system ('/usr/bin/fhem.pl 7072 list test state',$wert);

Wenn ich folgendes mache..klappt leider nicht:

$test = beliebig;

system ('/usr/bin/fhem.pl 7072 list $test state',$wert);

Dann kommt die Fehlermeldung: Unknown command. Das war mir schon fast klar, aber wie geht das trotzdem? Jemand eine Idee? wenigstens diesmall eine Hilfe bitte? :)
 
Thema:

per HTML-Seite Shell-Befehl ausführen und Werte einlesen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben