Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   exec in PHP-Script geht nicht (https://www.delphipraxis.net/54648-exec-php-script-geht-nicht.html)

noHuman 8. Okt 2005 19:11


exec in PHP-Script geht nicht
 
Hi!

ich habe das folgende PHP-Script:

Code:
<?php
  if (!isset($_SERVER['PHP_AUTH_USER']))
  {
       Header("WWW-Authenticate: Basic realm=\"VNC Shell Control by Wolfgang\"");
       Header("HTTP/1.0 401 Unauthorized");
       echo "Der Zugriff wurde verweigert!\n";
       exit;
  } 
  else
  {
       /*

             Teil der kontrolliert das der Benutzer berechtigt ist!

       */
   
 
    if ( isset($_GET['shutdown']) || isset($_GET['reboot']) || isset($_GET['standby']) )
    {
       if ( isset($_GET['shutdown']) )
       {
         // Parameter -f : Alle Prozesse beenden
         exec('winend.exe -f -s');  // <!----------------  Hier
         exit;
       }
       elseif ( isset($_GET['reboot']) )
       {
         // Parameter -f : Alle Prozesse beenden
         exec('winend.exe -f -r');  // <!----------------  Hier
         exit;
       }
       elseif ( isset($_GET['standby']) )
       {
         // Parameter -f : Alle Prozesse beenden
         exec('winend.exe -f -b');  // <!----------------  Hier
         exit;
       }
    }
    else
    {
      echo "<script language='JavaScript'>alert('Kein Modus!');</script>";
    }
  }
?>
Ihr seht, überall wo das
Code:
// <!----------------  Hier
ist, ist in "exec" Befehl!

Diese "exec"'s werden jedoch nicht ausgeführt!

Es gibt keine Fehler und keinen Safe Mode ( PHP ist in der Standart-Konfiguration )!

Das Script soll ein Netzwerk-Server herunterfahren/neustarten/Standby setzten:
Code:
[url]http://192.168.0.8/winend.php?shutdown=yes[/url] // Herunterfahren
Danke im Voraus!

PS: Ich weiss , der Code ist schlampig programmiert, dies wird noch behoben!

Eichhoernchen 8. Okt 2005 19:48

Re: exec in PHP-Script geht nicht
 
Hmm, ich kenne mich jetzt nicht so gut damit aus, aber ich würde glatt sagen das vielleicht die Pfadangabe zu dem Programm winend.exe fehlt und er es deswegen nicht ausführen kann!

noHuman 8. Okt 2005 20:03

Re: exec in PHP-Script geht nicht
 
Ich habe es jetzt mit

Code:
C:\WINDOWS\winend.exe
und

Code:
C:/WINDOWS/winend.exe
probiert.

:( Ohne Erfolg :(

omata 8. Okt 2005 21:25

Re: exec in PHP-Script geht nicht
 
Du musst den Slash quoten.

Delphi-Quellcode:
C://Windows//winend.exe
MfG
Thorsten

noHuman 9. Okt 2005 08:47

Re: exec in PHP-Script geht nicht
 
@omata

Nein, funktioniert leider auch nicht!

omata 9. Okt 2005 17:39

Re: exec in PHP-Script geht nicht
 
Hallo,

ich habe auch lange rumprobiert, bis sowas ging.
Was für eine Anwendung willst du da den starten? Was ist winend.exe?

Ich habe bei mir nur eine Konsolenanwendung benutzt.

MfG
Thorsten

HERMES 9. Okt 2005 23:40

Re: exec in PHP-Script geht nicht
 
Der Benutzer in dessen Kontext der Webserver läuft muss auch das recht haben diese anwendung zu starten.

yankee 10. Okt 2005 01:32

Re: exec in PHP-Script geht nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
was ist winend.exe für ein Programm? Hast du das selbst geschrieben? Wenn es auf deinem Server bei dir zu Hause läuft, beobachte einfach mla, was auf deinem Server passiert. Das Programm sollte sich nämlich öffnen, wie, wenn du es ganz normal starten würdest. Schreib doch einfach mit in Delphi (oder irgendwas anderem) eine einefach Konsolenanwendung, die nur "Hello world" oder sowas ausgibt. Ich mache es dir einfach (in Dev-C++ ist so ein Programm nämlcih 3 Mausklicks) und hänge dir ein Programm an, welches nicht anderes macht als "Hello world" auszugeben. Probier das mal mit passthru() in PHP auszuführen. Dann sollte dein Script nämlich Hello world ausgeben.
Um zu probieren, ob du den Dateipfad richtig angegeben hast, schreib einfach mal das:
if file_exists('Dateipfad') print('Dateipfad korrekt!');
in dein PHP-Skript.
Prüfe mal in der php.ini, ob exec wirklich erlaubt ist...

gsh 4. Nov 2005 22:43

Re: exec in PHP-Script geht nicht
 
Hi

Ich weiss des Thema ist etwas älter aber ich genau des gleiche Problem und bin trotz dieses Threads nicht zu einer Lösung gekommen.
Ich hab alles probiert aber ich bekomme immer den Fehler:
Zitat:

Dateipfad korrekt!
Warning: passthru() [function.passthru]: Unable to fork [ReBootMe.exe] in C:\Server\wwwroot\ReBootMe\index.php on line 9
QuellCode:
Code:
<?
if (file_exists('ReBootMe.exe'))
{
  echo 'Dateipfad korrekt!';
} else
{
  echo "Nich da";

passthru("ReBootMe.exe");
?>

Vjay 4. Nov 2005 23:38

Re: exec in PHP-Script geht nicht
 
Mh, eine Vermutung ist einfach mal, unter welchem "Konto" läuft dein PHP denn?

Apache als Dienst? Könnte evtl. damit zusammen hängen.

gsh 5. Nov 2005 00:09

Re: exec in PHP-Script geht nicht
 
Konto: Administrator (auf Win 2003 Server)
Http-Server: IIS 6.0

Luckie 5. Nov 2005 00:12

Re: exec in PHP-Script geht nicht
 
Zeig mal den Code von der Exe. Funktioniert es denn wenn du die Exe aus dem Explorer ausführst?

gsh 5. Nov 2005 00:16

Re: exec in PHP-Script geht nicht
 
Die Exe ist ja nicht des Problem ist ne normale konsollenanwendung die bis jetzt nur Hallo hinschreibt gerade zum testen. Aber des Problem ist des er sie nicht startet sondern einfach nur den Fehler herausbringt.

yankee 5. Nov 2005 01:25

Re: exec in PHP-Script geht nicht
 
Ich frage mich zwar, was PHP mit deinem Programm und einer Gabel will :lol: .
Naja, das war wohl ein Bug in PHP vor der Version 4.0.7 Quelle
ggf. updaten. Welche Version hast du?

edosoft 5. Nov 2005 01:31

Re: exec in PHP-Script geht nicht
 
probiers mal mit system()

is dein programm ne konsolen oder ne gui anwendung? guis kann er ja nicht abfragen probiers mal mit nem dos prgogramm oder so

mfg.

/edit: lad einfach die neueste version von php runter -> php.net

gsh 5. Nov 2005 11:23

Re: exec in PHP-Script geht nicht
 
1. PHP-Version: 5.0.5
2. Es ist eine Dos Anwendung
3. Mit System:
Zitat:

Warning: system() [function.system]: Unable to fork [ReBootMe.exe] in C:\Server\wwwroot\ReBootMe\index.php on line 9

ripper8472 5. Nov 2005 12:13

Re: exec in PHP-Script geht nicht
 
erstmal was heisst hier DOS? noch 16 bit?

dann probier mal apache. ich bin mir nahezu sicher, dass du dann keine probleme haben wirst.

gsh 5. Nov 2005 12:35

Re: exec in PHP-Script geht nicht
 
Ich meinte eine Konsollenanwendung

und nein ich will kein Apache

ripper8472 5. Nov 2005 13:05

Re: exec in PHP-Script geht nicht
 
was waere, wenns am IIS liegt?

benutze exec, nicht system.

gsh 5. Nov 2005 13:11

Re: exec in PHP-Script geht nicht
 
des glaub ich nicht

exec hab ich auch schon probiert -> ohne erfolg

ripper8472 5. Nov 2005 13:12

Re: exec in PHP-Script geht nicht
 
wenn da ne fehlermeldung von wegen fork() kommt, dann wunderts mich. fork() gibts nicht unter windows.

PHP als CGI oder ISAPI?

gsh 5. Nov 2005 13:36

Re: exec in PHP-Script geht nicht
 
keine Ahnung was ISAPI ist
aber es ist als CGI drinnen des weiss ich

ripper8472 5. Nov 2005 14:00

Re: exec in PHP-Script geht nicht
 
benutz apache mit mod_php und deine probleme sind geloest.

wenn nur jemand wuesste, wieso IIS diese probleme macht oder wieso er so gerne von den scriptkiddies exploitet wird...

gsh 5. Nov 2005 14:12

Re: exec in PHP-Script geht nicht
 
des geht aber nicht ok
ich muss IIS verwenden also wie kann ich des bei IIS lösen?

ripper8472 5. Nov 2005 14:25

Re: exec in PHP-Script geht nicht
 
installier mal ein aktuelles php (von php4 gibts auch noch aktuelle versionen), wenn das noch nicht so ist.

Chewie 5. Nov 2005 14:26

Re: exec in PHP-Script geht nicht
 
Zitat:

Zitat von omata
Du musst den Slash quoten.

Delphi-Quellcode:
C://Windows//winend.exe


*seufz* Wieso wird das immer falsch gemacht?? Nicht der Slash (/) ist der Escape-Character, sondern der Backslash (\(!!

gsh 5. Nov 2005 21:14

Re: exec in PHP-Script geht nicht
 
@ripper8472: Hab doch oben schon geschrieben des ich eine ganze neue version vom php hab.

@Chewie: Hast recht Backslash stimmt aber bei dem Quellcode muss ich gar nichts quoten:
Code:
<?
if (file_exists('ReBootMe.exe'))
{
  echo 'Dateipfad korrekt!';
} else
{
  echo "Nid da";

exec("ReBootMe.exe");
?>

omata 5. Nov 2005 23:39

Re: exec in PHP-Script geht nicht
 
@Chewie:

Danke für den Hinweis. Das weiss ich auch. Habe sehr lange rumprobiert (mit Apache) und mit // funktioniert es wunderbar. Es kann durchaussein, dass es auch mit \/ geht. Aber mit // eben auch also erzählt hier nicht, es liegt daran.

Thorsten

gsh 6. Nov 2005 10:09

Re: exec in PHP-Script geht nicht
 
Er findet die datei mit:
\
/
\\
//

also ist es egal aber kann des immer noch nicht ausführen


edit: Es geht ! :mrgreen:
Des problem war nur des IIS einen User bereitstellt der was keine rechte besitzt (aus Sicherheitsgründen) nachdem ich die Anmeldung eingschalten habe hat er des programm dann schliesslich auf Administrator ebene ausführen können


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz