skript in einem anderem skript starten

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

  • skript in einem anderem skript starten

    Besteht die Möglichkeit in einem PHP-Skript ein anderes auf einem anderem Host zu starten.

    z.B.

    Skriptaufruf ausgabe:

    externes skript gestartet
    wert ist 1234

    ende
    fotos :

    http://www.flickr.com/photos/rassloff/collections/

  • #2

    kannst du das mal genauer erklären?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Original geschrieben von Kropff
      kannst du das mal genauer erklären?
      was ist daran so unverständlich?

      @rossixx
      z.b. mit file_get_contents() / allow_url_fopen muss dabei an sein
      oder auch fsockopen()

      Kommentar


      • #4
        Also genauer :

        ich starte ein skript aaa.php ,

        dieses soll auf einem anderen server ein skript bbb.php starten

        das schreibt ein ergebnis in eine datei ddd.txt

        die lese ich aaa.php aus.

        das auslesen auf entfernten rechnern mache ich per curl.

        aber wie bringe ich das entfernte skript zum laufen ?????
        fotos :

        http://www.flickr.com/photos/rassloff/collections/

        Kommentar


        • #5
          mal davon ausgehend, dass alles seine legale richtigkeit hat...


          du könntest, wenn du es nur starten willst, die url in einem 1x1-pixel iframe öffnen.... so als dirty lösung
          **********
          arkos
          **********

          Kommentar


          • #6
            Über include oder über fsockopen geht nicht, weil

            allow_url_fopen is Off

            somit wird dein vorschlag wahrscheinlich auch nicht funktionieren, aber ich versuchs gleich mal.

            Eigentlich müßte ich ja nur einen LINK ausführen, der könnte das skript starten und parameter könnte der auch übergeben.

            Freiwillige vor
            fotos :

            http://www.flickr.com/photos/rassloff/collections/

            Kommentar


            • #7
              Original geschrieben von rossixx
              Eigentlich müßte ich ja nur einen LINK ausführen, der könnte das skript starten und parameter könnte der auch übergeben.
              du sagst es.
              aber wenn du sowieso schon curl benutzt, warum denn nicht damit?

              Kommentar


              • #8
                doofe Frage

                Mit welcher CURL-Function kann man denn ein Skript starten ???
                fotos :

                http://www.flickr.com/photos/rassloff/collections/

                Kommentar


                • #9
                  Die Lösung

                  PHP-Code:

                  $ch 
                  curl_init();
                  curl_setopt($chCURLOPT_URL"http://mein-server.net/test.php");
                  curl_setopt($chCURLOPT_HEADER0);
                  curl_exec($ch);
                  curl_close($ch); 
                  gefunden hier :

                  http://de3.php.net/manual/de/function.curl-exec.php
                  fotos :

                  http://www.flickr.com/photos/rassloff/collections/

                  Kommentar


                  • #10
                    Re: doofe Frage

                    Original geschrieben von rossixx
                    Mit welcher CURL-Function kann man denn ein Skript starten ???
                    indirekt startet man ein php-script, indem man es über die entsprechende url vom entfernten webserver anfordert.
                    und wie man mit curl_exec eine webseite aufruft, weißt du?!
                    alternative ist nach wie vor fsockopen oder auch per shell_exec wget anstoßen, da gibt es echt zig möglichkeiten.

                    Kommentar


                    • #11
                      [gelöst] die Lösung

                      nicht die Beste, aber tut seine Zwecke...

                      dem skript übergibt man in der konsole oder per nagios einen host und einen check-wert

                      PHP-Code:

                      #!/usr/bin/php
                      <?php

                      $url   
                      $_SERVER['argv'][1];
                      $check $_SERVER['argv'][2];
                      $host  $_SERVER['argv'][3];


                      $url $host ;

                      $ch curl_init() ;
                      curl_setopt($chCURLOPT_URL"http://meinserver.net/test.php?host=$host&check=$check") ;
                      curl_setopt($chCURLOPT_HEADER0) ;

                      $res curl_exec($ch) ;
                      curl_setopt($chCURLOPT_RETURNTRANSFER1);
                      $res curl_exec($ch) ;

                      curl_close($ch) ;

                      $res trimstr_replace (array("\n""<br>""<br />"  ),array('','',''), $res )) ;

                      $check_x ;

                      if ( 
                      $res == $check_x ) {
                        echo 
                      "HTTP OK : alles OK   r= $res \n" ;
                        exit (
                      0) ;
                      }
                      elseif ( 
                      $res == ) {
                        echo 
                      "HTTP WARNING : nicht  alles OK  r=$res \n" ;
                        exit (
                      1) ;
                      }
                      ?>
                      und dieses skript gibt es an das folgende weiter, welches auf einen anderen server liegt und von da aus einen server testet.

                      PHP-Code:


                      <?php
                      if ($host==0)$host $_GET['host'] ;
                      if (
                      $check==0)$check $_GET['check'];

                      $ch curl_init($host);
                      curl_setopt($chCURLOPT_RETURNTRANSFER1);
                      $res curl_exec($ch);
                      if (
                      curl_errno($ch) !=0){
                        
                      $err "fehler";
                      }
                      else{
                        
                      $err "super";
                      }
                      curl_close($ch);
                      $res trim(str_replace(array("\n""<br>""<br />"), array(''''''), $res));

                      if (
                      $res != $check) {
                          
                      //echo "HTTP CRITICAL: nicht alles OOOOOOOK  c=$check h=$host DREI=$err  r=$res  \n";
                            
                      echo "1";
                          exit (
                      1);
                      }
                      else {
                        
                      //echo "HTTP OK: alles ok\n";
                        
                      echo "0" ;
                        exit (
                      0) ;
                      }
                      ?>
                      fotos :

                      http://www.flickr.com/photos/rassloff/collections/

                      Kommentar


                      • #12
                        Eigentlich brauchst du die Query nicht zweimal ausführen (curl_setopt und dann curl_exec reicht) - ansonsten:
                        Code:
                        // Ein leerer String reicht aus:
                        $res = trim( str_replace (array("\n", "<br>", "<br />"  ),[b]''[/b], $res )) ;
                        
                        [b]$check_x[/b] = 0 ; // Debugging Überbleibsel? 
                        
                        if ( $res == [b]$check_x[/b] ) {
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar

                        Lädt...
                        X