URL nach redirect auslesen

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

  • URL nach redirect auslesen

    Hallo zusammen,

    ich lese mit fopen() einen Redirect URL aus. Ist es mir möglich zu prüfen wo das Original herkommt?

    Gruß
    Heinz

  • #2
    Das Original wird mit grösster Wahrscheinlichkeit vom Server kommen den du anfragst
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Original geschrieben von jahlives
      Das Original wird mit grösster Wahrscheinlichkeit vom Server kommen den du anfragst
      Nee, das ist definitiv nicht der Fall.

      Da die Aufgerufene URL die PHP Datei redirect.php beinhaltet und der Inhalt dahinter mit sehr großer Wahrscheinlichkeit eine andere Seite ist. Welches über header() ohne Probleme zu realisieren ist.

      Kommentar


      • #4
        Häh? Kannst du das nochmal für dumme Mods erklären?

        Mach mal n beispiel, was du machst. (und was du dann willst)

        Kommentar


        • #5
          Nur mal so, dass ich es verstehe. Du rufst eine Seite der Domain a auf und diese hat ein redirectScript und headered dich zur Domain b ? Willst du denn Domain b ? Das kannste dann doch aus der Serverantwort rauslesen. In diesem Falle würde ich ein fsockopen() auf a machen, das Script mittels eines GET Requests vom Server verlangen und die vom Server gesendeten Header Daten auswerten. Wenn das Script mittels header() weiterleitet dann müsste in der Antwort etwas von Location: und einer URL stehen.

          Gruss

          tobi

          p.s. wenns nicht das ist, dann musst du mir nochmals genau erklären was du machen willst.
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            @jahlives: Du hast es jetzt richtig interpretiert.

            Doch das mit fsockopen() will so nicht.

            Ich bekomme nämlich durch die Verwendung dann nur die Warnings:
            Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/project/indatabase.php on line 69

            Warning: fsockopen(): unable to connect to www.exsample.com/redirect.php?ID=847d97e3d58027e8073b854908e39ae2:80 in /var/www/project/indatabase.php on line 69
            Die Zeile 69 schaut wie folgt aus:
            PHP-Code:
            $fp fsockopen trim(substr$sNewsLink)), 80$errno$errstr30) ; 
            // substr dient zum entfernen von http:// 
            Vielleicht muss ich ja auch anders mit fsockopen umgehen.
            EDIT:
            by TobiaZ: Brich deinen Code um!
            Zuletzt geändert von TobiaZ; 05.10.2006, 13:14.

            Kommentar


            • #7

              http://www.google.de/search?hs=0T4&h...nG=Suche&meta=
              Damit findet man zum Beispiel gleich wieder auf dieses Board:
              http://www.php-resource.de/forum/sho...d/t-39720.html

              und wenn es das nicht war, klickt man das nächste Suchergebnis an...

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Original geschrieben von ghostgambler

                http://www.google.de/search?hs=0T4&h...nG=Suche&meta=
                Damit findet man zum Beispiel gleich wieder auf dieses Board:
                http://www.php-resource.de/forum/sho...d/t-39720.html

                und wenn es das nicht war, klickt man das nächste Suchergebnis an...
                Das Probleme habe ich bereits schon gegooglet und mir auch zählige Beiträge zu dem Problem durchgelesen. Doch da ich schon das http:// entferne, kann es nunmal nicht daran liegen. Daher ist ja auch meine Vermutung das fsockopen durch die Oben beschriebene Problematik nicht funktioniert. Sprich nicht mit der Weiterleitung der Seite klar kommt.
                Da wenn ich fsockopen nur auf die Domain + TLD begrenze, funktioniert. Erst durch Aufruf von redirect.php und dessen QueryString bekomme ich diese Fehlermeldung.

                Kommentar


                • #9
                  Erst fand ich den Beitrag von ghostgambler unpassend, da ich mich eigentlich mit google und co schon auseinander gesetzt habe. Doch dadurch fängt man halt nochmals an, das Ganze zu durchsuchen.

                  Habe somit auch festgestellt das meine Denkweise für fsockopen total falsch ist. Danach war es dann nicht mehr so schwierig das gewünschte Ergebnis zu bekommen.

                  Hier jetzt der Code:
                  PHP-Code:
                  $aPathInfo parse_url($sNewsLink) ;
                  $sHost $aPathInfo['host'] ;
                  $sServiceURI $aPathInfo['path'] . '?' $aPathInfo['query'] ;

                  # compose HTTP request header
                  $sHeader "Host: $sHost\r\n" ;
                  $sHeader .= "User-Agent: PHP Script\r\n" ;
                  $sHeader .= "Content-Type: application/x-www-form-urlencoded\r\n" ;
                  $sHeader .= "Content-Length: 0\r\n" ;
                  $sHeader .= "Connection: close\r\n\r\n" ;

                  $fp fsockopen($sHost80$errno$errstr);
                  if ( ! 
                  $fp ) {
                     echo 
                  "$errstr ($errno)<br/>\n" ;
                     echo 
                  $fp ;
                  } else {
                     
                  fputs$fp"POST $sServiceURI  HTTP/1.1\r\n" ) ;
                     
                  fputs$fp$sHeader ) ;
                     
                  fwrite$fp$out ) ;
                     while ( ! 
                  feof($fp) ) {
                         echo 
                  fgets$fp128 ) ;
                     }
                     
                  fclose($fp) ;

                  Kommentar


                  • #10
                    So und nicht anders macht man die Mods hier glücklich

                    Kommentar


                    • #11
                      Genau!

                      Kommentar

                      Lädt...
                      X