kostenloser Webspace werbefrei: lima-city


Problem mit fsockopen()

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    redcow

    Kostenloser Webspace von redcow

    redcow hat kostenlosen Webspace.

    hallo!

    Ich habe da ein Problem mit der Funktion fsockopen(), ich will das man per eingabe einer URL die Website der URL angezeigt bekommt, z.B. www.php.net.
    Versuche ich aber eine Verbindung aufzubauen und dann die index Datei aufzurufen, wird nur der header und ein "Moved permanentely" Fehler ausgegeben der auf die urspr?ngliche Seite verweist ausgegeben.

    Code:
    $fp = fsockopen ("www.php.net", 80, $errno, $errstr, 30);
    if (!$fp) {
       echo "$errstr ($errno)\n";
    } else {
       fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
       while (!feof($fp)) {
           echo fgets($fp,128);
       }
       fclose($fp);
    }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Die Funktion "fsockopen ()" ist deaktiviert!
    Mehr gibts dazzu leider nicht zu sagen. ^^
  4. 0******a

    @lucas9991:
    Nicht immer nur einfach sinnlos antworten bitte.


    @topic:
    Das ist ein ganz normaler HTTP-Response, den du auswerten musst. In dem HTTP-Header wird auch der Ort angegeben, an der sich die gew?nschte Datei befindet. Du musst den rausfiltern und das ganze dann nochmal mit der neuen Adresse machen.


    Nachtrag:
    Ich habe es mal selber gemacht und dabei festgestellt, dass der HTTP-Code 301 von php.net "missbraucht" wird. Hier der HTTP-Header:

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 30 Jun 2005 13:13:44 GMT
    Server: Apache/1.3.26 (Unix) mod_gzip/1.3.26.1a PHP/4.3.3-dev
    Location: http://www.php.net/
    Connection: close
    Content-Type: text/html; charset=iso-8859-1


    In diesem Fall bekommst du den Fehler, weil auf dem Server anscheinend mehrere Domains gehostet sind oder der Eintrag f?r die einzige Domain als Virtual Host angelegt ist. Du musst daher HTTP 1.1 statt HTTP 1.0 benutzen. Also deine Anfrage einfach ab?ndern nach:
    GET / HTTP/1.1\r\nHost: www.php.net\r\n\r\n

    Bei HTTP 1.1 muss Host als HTTP-Parameter ?bergeben werden. Den musst du also aus dem String, den der Benutzer eingibt, auch noch rausfiltern.
  5. Autor dieses Themas

    redcow

    Kostenloser Webspace von redcow

    redcow hat kostenlosen Webspace.

    @lucas:
    Das ist mir schon klar, ich Frage aber allgemein.

    @0-checka:

    Ich habs ausprobiert, funktioniert auch nicht. Wenn ich Location: rausfiltern w?rde und den Benutzer auf diese Seite weiterleiten w?rde, w?re es ja ein direkter Zugriff vom Benutzer auf die Website, was ich eigentlich nicht will.
  6. 0******a

    Hab meinem Beitrag (zeitgleich mit deinem letzten Post) noch einen Nachtrag zugef?gt. Den bitte beachten.
  7. Autor dieses Themas

    redcow

    Kostenloser Webspace von redcow

    redcow hat kostenlosen Webspace.

    Danke, es funktioniert jetzt Problemfrei.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!