PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Batch aufrufen und Ergebnis ausgeben (https://www.php-resource.de/forum/php-developer-forum/89180-batch-aufrufen-und-ergebnis-ausgeben.html)

Raid08 03-01-2008 14:33

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

jahlives 03-01-2008 14:42

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

Raid08 03-01-2008 14:50

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

jahlives 03-01-2008 15:03

Zitat:

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


Raid08 03-01-2008 15:06

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

Gruß Raid

jahlives 03-01-2008 15:14

Zitat:

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?

Raid08 03-01-2008 15:18

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

Gruß Raid

Raid08 03-01-2008 15:23

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

jahlives 03-01-2008 15:26

Zitat:

Wie kann man die unterscheiden?
Über deren name-Attribut kann man beliebig viele Buttons unterscheiden

Raid08 03-01-2008 15:39

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

jahlives 03-01-2008 15:45

Zitat:

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
  
}



Raid08 03-01-2008 15:59

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

jahlives 03-01-2008 16:07

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

Raid08 03-01-2008 16:11

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

jahlives 03-01-2008 16: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


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:44 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG