system() Output im Browser?!

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

  • system() Output im Browser?!

    Hallo an Alle,

    habe ein kleines Problemchen beim Aufruf der system()-Funktion.

    Ich rufe im Code die Funktion system() auf und leite dessen Output direkt per Kommandozeilenbefehl in eine Datei um. Also beispielsweise so:
    system("echo foofoofoo >>logs/file.log");
    Das ganze funktioniert soweit in Firefox auf Linux und Windows. Rufe ich selbiges Script aber im Opera auf, schreibt er den Output (also 'foofoofoo') nicht in das File sondern in das Browserfenster.

    Ein Aehnliches Problem stellt die exec()-Funktion dar. Hier funktioniert alles bei Firefox, beim Opera allerdings wird der Output diesmal nicht ins Browserfenster und auch nicht in das File geschrieben.

    Jemand ne Idee?

    Gruesse
    iNiT

  • #2
    system() und exec() sind PHP-Funktionen. PHP kennt so etwas wie "Browser" gar nicht. PHP läuft auf dem Server. Der Server empfängt einen HTTP-Request. Das PHP-Skript erzeugt die Reponse. Wenn alle deine Browser den absolut gleichen Request senden, bekommen sie garantiert auch die gleiche Reponse. Dem ist aber nicht so. Die Requests unterscheiden sich. Finde die Unterschiede heraus! Und dann prüfe wie dein Server und dein PHP-Skript auf diese Unterschiede reagieren.

    Übrigens steht im Manual zu system():
    "string system ( string $command [, int &$return_var ] )" <-- Die Funktion liefert also einen String. Was machst du damit?
    "system() ... executes the given command and outputs the result." <-- Es erzeugt eine Ausgabe. Wie verhinderst du, dass sie an den Browser gesendet wird?
    Zeig mal was von deinem Code!
    Zuletzt geändert von onemorenerd; 13.11.2009, 10:53.

    Kommentar


    • #3
      Häää....

      Was hat denn Opera oder der FF mit dem Script zu tun, welches auf dem Server läuft?
      Richtig! Nichts !
      Es sei denn das Script fragt das ab.

      Also ist diese Aussage ziemlicher Unsinn:
      Rufe ich selbiges Script aber im Opera auf, schreibt er den Output (also 'foofoofoo') nicht in das File sondern in das Browserfenster.

      Und diese ist noch größerer Unsinn:
      Ein Aehnliches Problem stellt die exec()-Funktion dar. Hier funktioniert alles bei Firefox, beim Opera allerdings wird der Output diesmal nicht ins Browserfenster und auch nicht in das File geschrieben.

      Übrigens:
      Es ist eine ganz klasse Idee, den störungsverursachenden Code geheim zu halten.
      Wir werden alle sterben

      Kommentar


      • #4
        Die Aussage ist kein Unsinn, es ist nunmal wirklich so. Ich verstehs auch nicht. Und ich weiss, dass PHP auf dem Server ausgefuert wird und nicht beim Client/Benutzer.

        Das einzigste was ich mache ist, ich schicke ein Formular mit ein paar Werten ab, ueberpruefe die Werte, setze das Kommando aus den uebergebenen Werten zusammen und fuehre system($command) aus. PHP laeuft bei mir auf nem Linux Server. Der Befehl den ich absetze leitet den Output in eine Datei um, das macht weder PHP noch sonst was. Das macht der Befehl den ich per system() auf dem Server ausfuehre. Ich weiss ehrlich gesagt nicht wo ich anfangen soll zu suchen. Der Ouput duerfte eigentlich garnicht beim Apache/PHP ankommen, da er schon auf der "Konsole" umgeleitet wird. Hast du vllt einen Anhaltspunkt oder ne Idee fuer mich?
        Zuletzt geändert von iNiT; 13.11.2009, 10:59.

        Kommentar


        • #5
          Hier mein Code:
          PHP-Code:
          $command 'ssh BENUTZER@IP instprep -a -h ' $dnsname ' --' $medium ' ' $versiontype ' ' $tabootstrap ' ' $backupbasic ' >inc/logs/instprep_' $userid['id'] . '.log';
          $call system($command$retval);

          if (
          $retval != 0){
            echo 
          "ERROR";
          }else{
            echo 
          "OK";

          Das fertige Kommando, das abgesetzt wird sieht so aus:

          ssh BENUZTER@IP instprep -a -h DNSNAME --iso acc-1.903-090204-1.iso >inc/logs/instprep_34.log

          Btw das grossgeschrieben musste ich zensieren. Ich entwickle das fuer die Firma.
          Zuletzt geändert von iNiT; 13.11.2009, 11:04.

          Kommentar


          • #6
            Guck mal in den erzeugten Quellcode, den der Browser anzeigt. Was steht dort?

            Kommentar

            Lädt...
            X