[Funktion] System() Funktion funktioniert nicht. Gründe?

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

  • [Funktion] System() Funktion funktioniert nicht. Gründe?

    Hallo Forum,

    folgendes Problem beschäftigt mich zur Zeit, und ich weiß leider keine Lösung mehr.

    In einem PHP Script erstelle ich aus der Datenbank diverse csv Dateien, welche ich in einem Ordner ablege und eine Batchdatei, welche danach mit Hilfe eines externen Programmes die CSV Dateien weiter verarbeiten soll.

    Wenn ich zum Schluss des Scriptes den Befehl
    Code:
    <?php system("C:\batch.bat"); ?>
    mache, funktioniert dies nicht. Die Batch wird einfach nicht ausgeführt. Wenn ich die Batch manuell doppel klicke funktioniert alles wunderbar.

    Nur der system() Aufruf funktioniert nicht. Woran kann so etwas liegen?

    Umgebung:
    PHP: 4.3.5
    OS: Win Server 2003

    Vielen vielen Dank schon mal für eure Mühe,

  • #2
    haste schonmal

    exec oder passthru

    ausprobiert??
    Zuletzt geändert von BAAL; 08.04.2005, 10:19.
    wenn wir unsere Agenturräume in nem Baumhaus hätten könnten wir wenigstens behaupten wir wären auf einen grünen Zweig gekommen

    Kommentar


    • #3
      Hatte ich noch nicht probiert. Danke für den Tip...

      Allerdings funktioniert es auch nicht

      Kommentar


      • #4
        1. http://www.php.net/exec
        2. ist der pfad richtig?
        3. E_ALL an?
        4. woher weißt du, dass das programm nicht ausgeführt wird?
        5. was steht in der batch-datei?

        Kommentar


        • #5
          Hallo penizillin,

          Vielen Dank für deine Mühe, hier die Antworten:

          @2) Ja, 100 Mal überprüft ;-)
          @3) äh, was? E_ALL?
          @4) weil die Batch ein Programm mehrmals aufruft was jeweils aus den CSV Dateien binäre *.dat Dateien macht. Und die sind nach der Ausführung nicht da.
          @5) something like that:
          C:\Programm.exe "C:\meinecsv.csv" "C:\meinedat.dat"
          C:\Programm.exe "C:\meinecsv2.csv" "C:\meinedat2.dat"
          etc.

          Wie gesagt, wenn ich die erzeugte Batch manuell nach der Ausfürhung des Scriptes doppel klicke, dann funktioniert ja alles wunderbar.

          Ich werd mal shell_exec ausprobieren. Geht das auch unter Windows?

          Gruß, Kristian

          PS: Oh man, heut hab ichs irgendwie. Hat jemand ne Ahnung warum im gleichen Script unlink("C:\exported_csv\*.*"); nicht funktioniert? Geht das überhaupt?

          Kommentar


          • #6
            http://www.php-resource.de/forum/sho...threadid=50454

            evtl. ist's ein rechte-problem.
            aber ich sage nur - E_ALL.

            Kommentar


            • #7
              Was ist mit Safe-Mode? Ist der aktiviert? Meines Wissens nach, sind diese Befehle im Safe-Mode nicht erlaubt. mach mal eine phpinfo und schau bei Safe-Mode nach.

              Gruß, P.

              Kommentar


              • #8
                ist deaktiviert, sonst gäb's ein warning.

                Kommentar


                • #9
                  Hallo nochmal,

                  es hat endlich funktioniert... Allerdings nur mit zwei Bedingungen...
                  a) Verwendung des Befehls shell_exec

                  und

                  b) Ausführung des PHP Scriptes über die Kommandozeile (sprich php Dateien mit der php.exe verknüpft und dann doppelgeklickt).

                  Danke trotzdem für eure Hilfe... Das mit den E_ALL hatte ich echt übersehen, sorry.

                  Kommentar

                  Lädt...
                  X