Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Verschiedene Befehle mit Buttons starten

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.03.2004
    Ort
    Weinheim
    Beiträge
    53

    Verschiedene Befehle mit Buttons starten

    Hallo,

    Ein frohes neues Jahr 2005 an alle.

    Habe eine Frage ?
    Ich möchte mit verschiedene Buttons verschiedene Befehele ausführen.Aber bei meinem Script werden die Befehle alle
    auf einmal ausgeführt.
    Hier mein kleines Script:
    <HTML>
    <HEAD>
    <TITLE>externe Befehlsausführung mit "exec"</TITLE>
    </HEAD>
    <BODY>
    <?PHP
    $lampe1on = exec ("./lpic 1 on", $test);
    $lampe2on = exec ("./lpic 2 on", $test);
    $lampe1off = exec (" ./lpic 1 off", $test);
    $lampe2off = exec (" ./lpic 2 off", $test);
    ?>
    <?PHP
    $lampe1off = exec (" ./lpic 1 off", $test);
    ?>
    <form action="<?=htmlentities($_SERVER['PHP_SELF'])?>" method="post">
    <input type="submit" name="$lampe1on" value="Lampe1on">
    <input type="submit" name="$lampe2on" value="Lampe2on">
    <input type="submit" name="$lampe1off" value="Lampe1off">
    <input type="submit" name="$lampe2off" value="Lampe2off">
    </form>
    </HTML>

    Kann mir jemand dabei helfen?

    mfg

    Enterprise

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Zitat Zitat von Enterprise
    Habe eine Frage ?
    Ich möchte mit verschiedene Buttons verschiedene Befehele ausführen.Aber bei meinem Script werden die Befehle alle
    auf einmal ausgeführt.
    Es werden ja auch alle Befehle einfach hinteinander ausgeführt:
    PHP-Code:
    [..]
         
    $lampe1on exec ("./lpic 1 on"$test);
         
    $lampe2on exec ("./lpic 2 on"$test);
         
    $lampe1off exec (" ./lpic 1 off"$test);
         
    $lampe2off exec (" ./lpic 2 off"$test);      
    [..] 
    Wobei die letzte Ausgabezeile des jeweiligen Befehls in der jeweiligen Variable gespeichert wird. Warum? Denn Die jeweiligen Variablen werden nicht weiter verwendet.

    Wenn ich Dich aber richtig verstehe, möchtest Du, daß eine bestimmte Aktion nur ausgeführt wird wenn ein bestimmter Button gedrückt wird, also ein bestimmter Wert an das Script geliefert wird. (Hilfreich die Einführung auf php.net: http://de3.php.net/manual/de/tutorial.forms.php)
    In Deinem Fall würde ich allen Buttons den gleichen Namen geben und dan unterschiedliche Werte verwenden, z.B:
    HTML-Code:
    <input type="submit" name="aktion" value="Lampe1on">
    <input type="submit" name="aktion" value="Lampe2on">
    <input type="submit" name="aktion" value="Lampe1off">
    <input type="submit" name="aktion" value="Lampe2off">
    Dann kann im Skript die jeweilige Aktion selektiert und ausgeführt werden:
    PHP-Code:
    switch ($_POST["aktion"]) {
        case 
    "Lampe1on":
            
    exec("./lpic 1 on");
            break;
        case 
    "Lampe2on":
            
    exec("./lpic 2 on");
            break;
        case 
    "Lampe1off":
            
    exec("./lpic 1 off");
            break;
        case 
    "Lampe2off":
            
    exec("./lpic 2 off");
            break;
    // switch ($_POST["aktion"]) 
    Jetzt muß das Ganze noch zusammengesetzt werden. Dies überlasse ich dann aber Dir.

    Pingu
    Homepage: www.pingu.info

  3. #3
    Registrierter Benutzer Avatar von maceis
    Registriert seit
    22.12.2004
    Beiträge
    13
    Falls Du auf dem Server SSI verwenden kannst, könnte man das mit Links lösen, die das entsprechende Programm aufrufen.
    Gruß maceis

    Eppur Si Muove (Gallileo Gallilei)

  4. #4
    Registrierter Benutzer
    Registriert seit
    04.03.2004
    Ort
    Weinheim
    Beiträge
    53
    Danke für die Hilfe.

    Habe zwei Files erstellt einmal eins mit html und das zweite als
    PHP.
    Wenn ich dann das html File öffne erscheinen vier Buttons wenn ich z.B: Den ersten Button drücke kommt ein Fehler der lautet:

    Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in /srv/www/htdocs/Test/listing1-8j.php on line 3

    Die line 3 zeigt auf den Case Befehl = ***case "Lampe1on":

    Was kann ich tun ?

  5. #5
    Registrierter Benutzer
    Registriert seit
    04.03.2004
    Ort
    Weinheim
    Beiträge
    53
    Wie kann ich überprüfen ob der POST Befehl richtig die
    Variable zum PHP Script sendet ?

  6. #6
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Zitat Zitat von Enterprise
    Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in /srv/www/htdocs/Test/listing1-8j.php on line 3

    Die line 3 zeigt auf den Case Befehl = ***case "Lampe1on":

    Was kann ich tun ?
    Wenn Du einfach abschreibst, überprüfen, ob dies richtig geschehen ist.
    Code:
    Die line 3 zeigt auf den Case Befehl = ***case "Lampe1on":
                                           ^^^--- das sollte so nicht da stehen.
    Ansonsten steht in der Fehlermeldung was falsch ist. Ein "Parse error", d.h ein Konstrukt ist nicht richtig geschrieben und der Interpreter/Compiler hier speziell der Parser, der vorher in Aktion tritt, weiß somit nicht was gemeint ist. Also ähnlich einem Grammatikfehler in der deutschen Sprache. Während wir Menschen an dieser Stelle mehr oder weniger Fehlertolerant sind und auch falsche Sprachkonstrukte richtig interpretieren/lesen können, kann dies der PHP-Interpreter nur bedingt. In einem solchen Fall empfiehlt es sich daher, gegebenfalls im Manual nachzusehen wie das Konstrukt richtig geschrieben wird. In diesem Fall ist dies bei dem folgenden Link zu finden: http://de.php.net/manual/de/control-...res.switch.php

    Zitat Zitat von Enterprise
    Wie kann ich überprüfen ob der POST Befehl richtig die
    Variable zum PHP Script sendet ?
    Mit dem Manual auf php.net vertraut machen und dort z.B. folgende Funktion finden: http://de2.php.net/var-dump

    Pingu
    Geändert von Pingu (02-01-2005 um 12:21 Uhr)
    Homepage: www.pingu.info

  7. #7
    Registrierter Benutzer
    Registriert seit
    04.03.2004
    Ort
    Weinheim
    Beiträge
    53
    Habe von der PHP Homepage sie switch case Funktion getestet.
    Das funktioniert nicht bei mir.
    Hier das Script:
    <?php
    $i=0;
    switch ($i) {
    case 0:
    ** echo "i ist gleich 0";
    ** break;
    case 1:
    ** echo "i ist gleich 1";
    ** break;
    case 2:
    ** echo "i ist gleich 2";
    ** break;
    default:
    ** echo "i ist weder 0, 1 noch 2";
    }
    ?>
    Es müßte doch Jetzt bei case 0 das echo auf Schirm erscheinen.
    Aber es kommt der Fehler:
    Parse error: parse error in /srv/www/htdocs/Test/listing1-8l.php on line 5

    Für mich heißt das , dass das Problem mit dem echo zu tun hat.
    Aber welches Problem ?

  8. #8
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Frage: War im Orginal auch das Zeichen * vorhanden?

    Jenachdem wie Du die Frage für Dich selbst beantwortest, kommst Du auf die richtige Lösung.

    Pingu

    PS: Blindes Copy'n'Paste führt nicht immer zu einer funktionsfähigen Lösung.
    Homepage: www.pingu.info

  9. #9
    Registrierter Benutzer
    Registriert seit
    04.03.2004
    Ort
    Weinheim
    Beiträge
    53
    Nein bei mir sind die Sterne nicht drin.

  10. #10
    Registrierter Benutzer Avatar von maceis
    Registriert seit
    22.12.2004
    Beiträge
    13
    hallo pingu -

    wie ich auf Deine hp sehe bist Du anscheinend auch ein macuser
    grüße aus Nürnberg von einem anderen macuser.

    btw.
    das mit den Sternen kommt mir auch spanisch vor !
    Gruß maceis

    Eppur Si Muove (Gallileo Gallilei)

  11. #11
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Und andere "Nicht-Leerzeichen", die dann beim Copy'n'Paste hier ins Forum einfach nur als * angezeigt werden?

    Pingu
    Homepage: www.pingu.info

  12. #12
    Registrierter Benutzer
    Registriert seit
    04.03.2004
    Ort
    Weinheim
    Beiträge
    53
    Danke

    Habe den Fehler gefunden.
    Bei mir war es nicht sichtbar.
    Habe alles an den Rand deletet, dann ging es.
    Jetzt noch eine Frage dazu.
    Beim ausführen wird auf das PHP Script umgeschaltet.
    Die Ausführung soll aber im Hintergrund ausgeführt werden.
    Giebt es dazu eine Möglichkeit.

  13. #13
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Zitat Zitat von Enterprise
    Danke

    Habe den Fehler gefunden.
    Bei mir war es nicht sichtbar.
    Habe alles an den Rand deletet, dann ging es.
    Jetzt noch eine Frage dazu.
    Beim ausführen wird auf das PHP Script umgeschaltet.
    Die Ausführung soll aber im Hintergrund ausgeführt werden.
    Giebt es dazu eine Möglichkeit.
    Wenn ich dich recht verstehe suchst du sowas wie das hier:
    http://www.naken.cc/mikehup.php

    Gruß,

    Gaert


Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •