Ankündigung

Einklappen
Keine Ankündigung bisher.

Kleines Interface um Dateien zu starten.

Einklappen

Neue Werbung 2019

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

  • Kleines Interface um Dateien zu starten.

    Hallo, ich bin was php angeht komplett neu... habe mich demnoch entschlossen nur einmalig ein kleines Interface zu erstellen.Mein Problem jedoch ist das mein Interface die Start.bat auf meinem Desktop nicht startet, und sich zu tode lädt. Wenn ich jedoch den Server/ die auszuführende datei in den Ordner wwwroot packe wird sie ausgeführt,(lädt sich ebenfals zu tode) jedoch nur im Taskmanager aufgelistet und der Server ist nicht erreichbar(SAMP), ich habe auch eine bat datei mit echo Hallo!
    ausgeführt, der Text taucht auf der Homepage wieder auf, wenn ich die Datei mit dem Text aufm Desktop verwende jedoch nicht.

    PHP CODE:
    PHP-Code:
    <?php
    exec
    ('C:\Users\Administrator\Desktop\SAMP-SERVERKopie\start.bat');  
     
    ?>
    Wenn ich die .bat Datei per cmd oder normal aufm Desktop starte ist alles wie immer und startet ohne Probleme.
    --PHP ist auf der aktuellsten Version.
    Betriebsebene: Windowsserver 2008 R2 Enterprise, Internetinformationsdienst (IIS)

  • #2
    Was enthält denn die start.bat?

    PHP-Code:
    $returnValue system('C:\Users\Administrator\Desktop\SAMP-SERVERKopie\start.bat');
    echo 
    $returnValue
    Was wird bei dir ausgegeben?

    Kommentar


    • #3
      start.bat:
      PHP-Code:
      @ECHO OFF
      echo Es wird versucht den Server zu Starten.
      start  C:\ UsersAdministratorDesktopSAMP-SERVERKopiesamp-server-1.exe
      :exit 
      Das steht drinne.
      Der Text wird hier ebenfals nicht auf der Homepage wiedergegeben egal wo sie sich befindet.

      Kommentar


      • #4
        Da fehlen in jedem Falle die Verzeichnis Separatoren (/)....

        Und was gibt dir mein Snippet?

        Kommentar


        • #5
          Die Verzeichnisseperatoren werden nicht Angezeigt?! Jedenfalls wenn ich den Beitrag editiere sind sie zu sehen.

          Zum Code, eben gerade ist mir aufgefallen das der Browser zu der Seite geht bzw. sie sofort lädt, bei der start,stop und restart.php bei der start.php habe ich meinen code durch deinen ausgetauscht und da das selbe.Ich kann also normal mit dem Back Button zurück jedoch passiert mit dem Server/Root nichts.

          Kommentar


          • #6
            Mal in den Raum geworfen: Prozesse zu spawnen und Anwendungsprozesse Erben sind 2 verschiedene Welten.

            Will heißen: executest du ein Batch, wartet PHP geduldig bis es zuende gebatched hat. Spawnst du einen Prozess, hast du das halt getan.

            Ein Wink für Windows Umgebungen: execute ist für den Pöbel. Nur der COMmander wird geadelt.

            Kommentar


            • #7
              Ich habe sowas gefunden:
              http://www.php.net/manual/de/class.com.php

              PHP-Code:
              <?php
              // starting word
              $word = new COM("word.application") or die("Unable to instantiate Word");
              echo 
              "Loaded Word, version {$word->Version}\n";

              //bring it to front
              $word->Visible 1;

              //open an empty document
              $word->Documents->Add();

              //do some weird stuff
              $word->Selection->TypeText("This is a test...");
              $word->Documents[1]->SaveAs("Useless test.doc");

              //closing word
              $word->Quit();

              //free the object
              $word null;
              ?>
              Wie kann ich das umschreiben das es meine start.bat ausführt?
              Vielen Dank!

              Kommentar


              • #8
                Der oberste Kommentar hört sich rein von der Beschreibung nach dem an, was du suchst:
                http://www.php.net/manual/de/function.exec.php
                Aber ohne Gewähr :
                PHP-Code:
                <?php 
                function execInBackground($cmd) { 
                    if (
                substr(php_uname(), 07) == "Windows"){ 
                        
                pclose(popen("start /B "$cmd"r"));  
                    } 
                    else { 
                        
                exec($cmd " > /dev/null &");   
                    } 

                ?>

                Kommentar


                • #9
                  Mhh. okay also starten tut da nichts ich habe das mal so eingefügt:
                  PHP-Code:
                  <?php
                  function execInBackground($cmd) {
                      if (
                  substr(php_uname(), 07) == "Windows"){
                          
                  pclose(popen("start /B "$cmd"r")); 
                      }
                      else {
                          
                  exec($cmd " > /C:\Users\Administrator\Desktop\SAMP-SERVERKopie\start.bat");  
                      }
                  }
                  ?>
                  Sorry, ich habe solche Zeilen noch nie verwendet, eher den Standartkrams wie Buttons aber mehr nicht.

                  Kommentar


                  • #10
                    Und das wars? Das könnte dann nicht mal theoretisch funktionieren. Schau dir Mal Funktionen an.

                    Ich denke der für dich relevante Teil ist:
                    PHP-Code:
                    pclose(popen("start /B "$cmd"r")); 

                    Kommentar


                    • #11
                      pclose(popen("C:\Users\Administrator\Desktop\SAMP-SERVERKopie\start.bat". $cmd, "r"));

                      Besser weis ichs auch nicht :-/

                      Kommentar


                      • #12
                        Also du musst die Variable "cmd" ersetzen mit deiner batch Pfad so in der Richtung:

                        PHP-Code:
                        $cmd "C:\Users\Administrator\Desktop\SAMP-SERVERKopie\start.bat"
                        Das in die erste zweite Zeile deines php Scripts schreiben und fertig (theoretisch) ich hatte auch schon ein paar Probleme mit dem öffnen von Dateien außerhalb des server roots aber könnte klappen.

                        Kommentar


                        • #13
                          Aber es tut sich komischerweise nichts... :-/
                          So schaut meine PHP Datei jetzt aus:
                          PHP-Code:
                          <?php  
                            $cmd 
                          "C:\Users\Administrator\Desktop\SAMP-SERVERKopie\start.bat";
                            function 
                          execInBackground($cmd) { 
                              if (
                          substr(php_uname(), 07) == "Windows"){ 
                                  
                          pclose(popen("start /B "$cmd"r"));  
                              } 
                              else { 
                                  
                          exec($cmd " > /dev/null &");   
                              } 

                          ?>
                          So verweise ich auf die PHP Datei:
                          PHP-Code:
                          <a href="http://***.***.***.**/start.php" style="text-decoration:none;"><button style="border:none;">Starten</button></a

                          Kommentar

                          Lädt...
                          X