Batch aufrufen und Ergebnis ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Batch aufrufen und Ergebnis ausgeben

    Hallo erstmal,

    ich hab da mal ne Frage ! Ich versuch eine Batch auszuführen in deren Ergebnis wieder auszugeben. Das klappt soweit auch


    $command="c:\bat.bat";
    $output=shell_exec($command." 2>&1");
    print "<pre>$output</pre>\n";


    So nun möchte ich jedoch diesen befehl hinter einen Button legen und das Ergebnis darunter ausgeben. Das klappt mal überhaupt nicht. Könnt ich mir weiterhelfen?

    Schonmal im vorraus Danke

    Gruß Raid

  • #2
    Also willst du, dass man erst einen Button klicken muss, damit das Ergebnis angezeigt wird? Wenn ja dann probier mal folgendes
    PHP-Code:
    <?php
    if(!isset($_POST['start'])){
      
    ?>
       <html>
       <head>
       <title>Irgendwas</title>
       </head>
       <body>
       <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
       <input type="submit" name="start" value="Batch starten" />
       </form>
       </body>
       </html>
       <?php
    }else{
       
    $command="c:\\bat.bat"
       
    $output=shell_exec($command." 2>&1"); 
       print 
    "<pre>$output</pre>\n"
    }
    Gruss

    tobi
    Zuletzt geändert von jahlives; 03.01.2008, 14:03.
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Genau ich möchte das man einen Button klickt, die Batch ausgeführt wird und das Ergebnis ausgegeben wird. Aber irgenwie klappt das damit nicht!

      Gruß Raid

      Kommentar


      • #4
        Aber irgenwie klappt das damit nicht!
        Und was genau klappt denn damit nicht? Findet denn die Formularausgabe statt, wenn du die Seite zum ersten Mal aufrufst? Falls ja was passiert denn wenn du den Button klickst?
        Btw, dass es </title> und nicht </title] heisst ist dir schon aufgefallen?

        Gruss

        tobi

        EDIT:

        den abschliessenden title-Tag gerade noch korrigiert

        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Es passiert nichts wenn ich die Seite das erste Mal lade. Keine Fehlermeldung oder so einfach nur weiß.

          Gruß Raid

          Kommentar


          • #6
            Es passiert nichts wenn ich die Seite das erste Mal lade. Keine Fehlermeldung oder so einfach nur weiß.
            Den Quelltext mal angeschaut? (Rechtsklick und Quelltextansicht) Steht etwas im Quelltext?
            Und als erste zwei Zeilen deines Codes
            PHP-Code:
            ini_set('display_errors','1');
            error_reporting(E_ALL); 
            Werden keine Fehlermeldungen ausgegeben?
            Ein einfaches echo 'Hallo Welt' funzt in der genannten Datei aber schon?
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Oh es klappt Vielen Dank!!! Du bist der beste Schönen Tag wünsch ich Dir noch!

              Gruß Raid

              Kommentar


              • #8
                Wo ich gerade dabei bin. Wie krieg ich das hin wenn ich zwei Buttons hab mit unterschiedlichen Bat-Dateien. Wie kann man die unterscheiden?

                Gruß Raid

                Kommentar


                • #9
                  Wie kann man die unterscheiden?
                  Über deren name-Attribut kann man beliebig viele Buttons unterscheiden
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    un woher weiss er dann welche batch er nehmen soll? Kann ich dann einfach schreiben

                    <?php
                    if(!isset($_POST['start,beenden'])){
                    ?>
                    <html>
                    <head>
                    <title>Irgendwas</title>
                    </head>
                    <body>
                    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                    <input type="submit" name="start" value="starten" />

                    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                    <input type="submit" name="beenden" value="beenden" />

                    </form>
                    </body>
                    </html>
                    <?php
                    }else
                    { $command="c:\bat.bat"; $output=shell_exec($command." 2>&1"); print "<pre>$output</pre>\n"; }


                    Gruß Raid

                    Kommentar


                    • #11
                      un woher weiss er dann welche batch er nehmen soll? Kann ich dann einfach schreiben
                      Können kann man vieles, ob es funzt ist eine andere Frage...
                      PHP-Code:
                      if(!isset($_POST['start'],$_POST['beenden'])){
                        
                      //Gib dein Form aus
                      }else{
                        
                      //Verarbeite die Daten
                        
                      if(isset($_POST['start'])){
                          
                      //Code verarbeiten der mit Button 'start' verknüpft ist
                        
                      }elseif(isset($_POST['beenden'])){
                          
                      //Code verarbeiten der mit 'beenden' verknüpft ist
                        
                      }

                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Oha das wird jetz aber unübersichtlich. Das sieht jetz so aus

                        <?php
                        if(!isset($_POST['start'],($_POST['beenden'])){
                        ?>
                        <html>
                        <head>
                        <title>Irgendwas</title>
                        </head>
                        <body>
                        <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                        <input type="submit" name="start" value="starten" />

                        <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                        <input type="submit" name="beenden" value="beenden" />

                        </form>
                        </body>
                        </html>
                        <?php
                        }else
                        {
                        if(isset($_POST['start']))
                        {
                        $command="c:\beenden.bat"; $output=shell_exec($command." 2>&1"); print "<pre>$output</pre>\n";
                        }

                        }elseif(isset($_POST['beenden']))
                        {
                        $command="c:\starten.bat"; $output=shell_exec($command." 2>&1"); print "<pre>$output</pre>\n";
                        }
                        }
                        ?>

                        und gibt folgende Fehlermeldung aus.

                        Parse error: syntax error, unexpected '(', expecting T_STRING or T_VARIABLE or '$' in C:\Programme\xampp\htdocs\test\test4.php on line 2


                        Gruß Raid

                        Kommentar


                        • #13
                          Tja Code richtig einrücken
                          PHP-Code:
                          }else{
                            if(isset(
                          $_POST['start'])){ 
                              
                          $command="c:\beenden.bat"
                              
                          $output=shell_exec($command." 2>&1");
                              print 
                          "<pre>$output</pre>\n"
                            }elseif(isset(
                          $_POST['beenden'])){ 
                              
                          $command="c:\starten.bat"
                              
                          $output=shell_exec($command." 2>&1");   
                              print 
                          "<pre>$output</pre>\n"
                            }
                          }
                          ?> 
                          Du hattest vo deinem elseif eine schliessende Klammer } zu viel

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            ne das wars noch nich. Die Fehlermeldung bleibt, wenn ich auf einen der beiden Button klicke kommt die Fehlermeldung


                            <?php
                            if(!isset($_POST['start'],($_POST['beenden'])){
                            ?>
                            <html>
                            <head>
                            <title>Irgendwas</title>
                            </head>
                            <body>
                            <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                            <input type="submit" name="start" value="starten" />

                            <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
                            <input type="submit" name="beenden" value="beenden" />

                            </form>
                            </body>
                            </html>
                            <?php
                            }else
                            {
                            if(isset($_POST['start']))
                            {
                            $command="c:beenden.bat"; $output=shell_exec($command." 2>&1"); print "<pre>$output</pre>\n";
                            }
                            elseif(isset($_POST['beenden']))
                            {
                            $command="c:starten.bat"; $output=shell_exec($command." 2>&1"); print "<pre>$output</pre>\n"; } }
                            ?>


                            Fehlermeldung:

                            Parse error: syntax error, unexpected '(', expecting T_STRING or T_VARIABLE or '$' in C:\Programme\xampp\htdocs\test\test4.php on line 2

                            Gruß Raid
                            Zuletzt geändert von Raid08; 03.01.2008, 15:14.

                            Kommentar


                            • #15
                              Sorry habe es erst jetzt gesehen (hätte wohl die Fehlermeldung besser lesen sollen)
                              PHP-Code:
                              if(!isset($_POST['start'],$_POST['beenden'])){ 
                              Da war eine ( zuviel drin. Somit ist der Parser bereits bei dieser Zeile abgeschmiert und hat den anderen Klammerfehler gar nicht entdeckt...

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X