.kaese: file_get_contents liefert timout

Hi,

ich hab bei einem Host zwei einzelne Webpacks (also zwei völlig unabhängige Seiten/Speicherplatz/Datenbank etc.).

Nun möchte ich von einem der beiden Webpacks eine dritte Seite (nicht von mir) mit file_get_contents auslesen. Das hat bis vor ca. 1 Monat auch wunderbar funktioniert, jetzt kommt immer nur ein timeout.

Von meiner zweiten Seite aus funktioniert das Script aber problemlos. Es liegt also nicht am Script, sondern an meinem ersten Webpack.

Kann es sein, dass die auszulesende Seite meine Seite blockiert und kein file_get_contents erlaubt?

Leider ist das kein Server, wo ich selbst irgendwas installieren kann (Wireshark o.ä.), sondern nur normaler Webspace + Domain.

  1. hi,

    Kann es sein, dass die auszulesende Seite meine Seite blockiert und kein file_get_contents erlaubt?

    Du meinst die auslesende Seite? Für diesen Fall kontaktiere Deinen Provider. Es ist möglich, dass den seine Secure Policy nicht erlaubt, vom Server ausgehend, Requests auf Port 80 nach draußen zu schicken (möglicherweise sind weitere Ports gesperrt, bei meinem Provider ist das so).

    Hotti

    1. Du meinst die auslesende Seite? Für diesen Fall kontaktiere Deinen Provider.

      Nein, ich meinte ob die Seite, die ich auslesen möchte, mein file_get_contents-Script blokcieren könnte.

      Es ist möglich, dass den seine Secure Policy nicht erlaubt, vom Server ausgehend, Requests auf Port 80 nach draußen zu schicken (möglicherweise sind weitere Ports gesperrt, bei meinem Provider ist das so).

      Laut meinem Hoster ist dort alles ok; und von meinem anderen Webspace aus kann ich das Script ja aufrufen. Als Tipps bekam ich auch nur Hinweise, doch bspw. den Autor des Scripts zu fragen o.ä.

      Aber das Script ist ja eigentlich nur ein Einzeiler:

      <?php  
        
        echo file_get_contents(http://geizhals.at/deutschland/a534348.html);  
        
      ?>
      
      1. Mahlzeit .kaese,

        echo file_get_contents(http://geizhals.at/deutschland/a534348.html);

        Du weißt schon, dass file_get_contents() einen *STRING* als ersten Eingabeparameter erwartet?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Du weißt schon, dass file_get_contents() einen *STRING* als ersten Eingabeparameter erwartet?

          Jaaa... hab das nur schnell auf Arbeit geschrieben; im Scripts natürlich korret (sonst käm ja auch ein entsprechender Fehler und kein Timeout :))

          1. Hello,

            Du weißt schon, dass file_get_contents() einen *STRING* als ersten Eingabeparameter erwartet?

            Jaaa... hab das nur schnell auf Arbeit geschrieben; im Scripts natürlich korret (sonst käm ja auch ein entsprechender Fehler und kein Timeout :))

            Woran stellst Du denn den Timeout fest? Welches Mitglied der Kette lsöt ihn aus?

            Auf der Strecke vom Client zum fremden Server

            Dein Browser -> dein Router -> Übertragungsstrecke -> Firewall des Hosters ->
                 Dein Server -> Firewall des Hosters -> Übertragungsstrecke ->
                 Firewall des anderen Hosters -> abgefragter Server
                 und der gesamte Rückweg

            gibt es dutzende von Timeout-Möglichkeiten.

            Wenn Dein PHP-Script welche produziert bzw. detektiert, sollte es dir diese mitteilen.

            Also poste uns doch bitte die Meldung, die Du erhältst.
            Wenn keine kommt, bau für die Fehlersuche ein Logging in Dein Script ein und stelle anhand dieser Datei fest, wie weit das Script gekommen ist.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
      2. Hi,

        <?php

        echo file_get_contents(http://geizhals.at/deutschland/a534348.html);
        ?>

          
        Hast Du denn die Genehmigung vom Betreiber dieser Seite, diese unter Deiner Domain auszuspucken?  
        Wenn ja, dann frag doch dort nach, warum das nicht mehr funktioniert.  
          
        Wenn nein: dann laß das lieber. Wenn die das nur unterdrücken, hast Du noch Glück, die könnten auch abmahnen ...  
          
        cu,  
        Andreas
        
        -- 
        [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
        [O o ostern ...](http://ostereier.andreas-waechter.de/)  
          
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.  
        
        
      3. Hello,

        Du meinst die auslesende Seite? Für diesen Fall kontaktiere Deinen Provider.

        Nein, ich meinte ob die Seite, die ich auslesen möchte, mein file_get_contents-Script blokcieren könnte.

        Ja, das schrieb ich doch bereits. Es könnte ein Timeout für den Socket geben und einen für das Öffnen der entfernten Datei. Beide kannst Du innerhalb Deines Scriptes gesondert einstellen, kontrollieren und damit auch feststellen, welcher in Frage kommt.

        lies Dir dazu auch das Manual zu fsockopen() durch
        http://de.php.net/manual/en/function.fsockopen.php

        und die Erklärungen zu den zusätzlichen Argumenten der Funktion file_get_contents()
        http://de.php.net/manual/en/function.file-get-contents.php

        und der Funktion stream_context_create()
        http://de.php.net/manual/en/function.stream-context-create.php

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. Hello,

    Kann es sein, dass die auszulesende Seite meine Seite blockiert und kein file_get_contents erlaubt?

    Wenn der Webserver entsprechend konfigureriert wäre, müsstest Du eine Fehlermeldung bekommen.
    Wenn allerdings die Firewall des Providers outgoing HTTP Requests unterdrückt, dann kann es sein, dass Dein PHP-Script nur in den Timeout läuft. Je nachdem, wie Du den eingestellt hast für den Socket und für die ferne Dateiöffung, siehst Du die Fehlermeldung noch, oder aber sie versickert im Script-Timeout.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Kann es sein, dass die auszulesende Seite meine Seite blockiert und kein file_get_contents erlaubt?

      Wenn der Webserver entsprechend konfigureriert wäre, müsstest Du eine Fehlermeldung bekommen.

      Bei den Scripteinstellungen steht auf der Konfigseite meines Hosts: PHP-Errors: Im Browser ausgeben. Oder meinst du etwas anderes?