URL per cURL öffnen

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

  • #16
    Hmm meine Manual sagt aber folgendes:
    quote:
    --------------------------------------------------------------------------------
    PHP Manual 4.0
    CURLOPT_FOLLOWLOCATION: Bei Setzen dieser Option auf einen Wert ungleich 0 (Null) wird jedem "Location: " (Ein Feld des HTTP-Headers) gefolgt. Zu beachten ist, dass dies rekursiv geschieht.
    --------------------------------------------------------------------------------
    0 != 0 ??????????? eher 0 == 0 oder ? Also setze den Wert auf 1 oder was auch immer, aber nicht auf 0.

    Gruss

    tobi
    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


    • #17
      Ok... hab mal 1 gesetzt... aber geändert hat sich scheinbar nichts... funktioniert genau so wie mit ner 0.

      Liegt sicher daran das dort keine neuen Locations angegeben werden...

      Trotzdem mein Problem mir fehlt der Inhalt der Seite. Ich bekomm nur die Bilder und Tabellen (alles richtig formatiert)
      Zuletzt geändert von Nordin; 16.03.2006, 11:28.

      Kommentar


      • #18
        Also ich geb es auf mit cURL... Aber ich würd dann noch die Variante von jahlives probieren.
        Kann mir da jemend helfen? Oder gab es darüber schonmal ein Thema?
        Original geschrieben von jahlives
        Warum denn nicht mit fsockopen + fgets + fputs ?
        Die Session ID wirst du auch so übergeben bekommen.
        Also zuerst eine Verbindung erstellen mittels fockopen + url, die gesamte Antwort empfangen und einen request (fputs() ) nach der gewünschten Seite absetzen. Dann den gesamten Inhalt der Datei auf eine Var speichern und auf Weiterleitungen prüfen. In solchen Fällen findet beim ersten Aufruf der Seite eine Weiterleitung auf dieselbe Seite statt nur mit der Session ID angehängt. Diese Id steht jedoch ganz sicher im Header, den der Server für die Datei zurückschickt.
        Wenn du die neue URL aufgerufen hast, speicherst du diese wieder auf eine Var und suchst darin nach dem HTTP Status Code 200 (Seite gefunden und alles i.O).
        Dann zerlegst du den Inhalt der Datei und suchst dir die Bereiche raus, die du brauchst.

        Gruss

        tobi

        p.s. schau dir das Manual zum Thema an

        Kommentar


        • #19
          SID (clientseitig) holen und wieder an Server übergeben

          Sooo ich hätte da mal immernoch nen problem.

          Ich weiß das ich es so ähnlich schon einmal gepostet hatte aber dort hab ich es immer mit cURL versucht. Jetzt möchte ich es mit fsockopen + fputs + fgets versuchen.

          Also vornweg nochmal eine kleine Erklärung:

          Ich möchte direckt auf diesen Link verweisen:
          http://intranet.xxxxx.org/PE/mainframe.php?&path=1,2,22&execsite=1&cid=

          Nur das Problem ist das der Inhalt dieser Seite nur genneriert wird wenn ich eine gültige SessionID mit übergebe.

          Die SessionID bekomme ich vermutlich hier:
          http://intranet.xxxxx.org/PE/index.php?path=1

          Wie kann ich jetzt mit fsockopen, fgets und fputs eine gültige SID holen und bei einer Anfrage wieder mitsenden, so das ich die Seite wenn ich diesen Link aufrufe angeseigt bekomme?

          Meine ersten versuche sind alle gescheitert. Ich hab auch eine PHP-Manual in der ich mich zu fsockopen einwenig belesen hab. Aber ich schafe einfach nicht eine gültige SID wieder mit zusenden. Bzw. ich bin zu blöd dafür.

          Bitte helft mir...
          Zuletzt geändert von wahsaga; 21.03.2006, 11:40.

          Kommentar


          • #20
            Ok gut...

            ich hab jetzt was fertig gemacht... (nach großem suchen im netz teilweise selber verfasst)

            Jetzt hab ich eigentlich nur nen kleines bis großes Problem ich bekomme mindesten 1000 mal folgende Fehlermeldung immer im wechsel:
            PHP Warning: feof(): supplied argument is not a valid stream resource in /var/www/html/martin/test/send2host.php on line 51
            PHP Warning: fgets(): supplied argument is not a valid stream resource in /var/www/html/martin/test/send2host.php on line 52
            Hat jemand eine Ahnung woran das liegt?

            Hier mein Hauptprogramm:
            PHP-Code:
            function sendToHost($host,$method,$path,$params,$cookies=array(),$useragent=0)
            {
                
            // Supply a default method of GET if the one passed was empty
                
            if (empty($method))
                    
            $method 'GET';

                
            $method strtoupper($method);
                
            $fp fsockopen($host,80);

                
            $data '';
                foreach (
            $params as $key => $val) {
                    
            $pair $key.'='.urlencode($val);
                    if (empty(
            $data))
                        
            $data $pair;
                    else
                        
            $data .= '&'.$pair;
                }

                if (
            $method != 'POST')
                    
            $path .= '?' $data;

                
            fputs($fp"$method $path HTTP/1.0\n");

                if (!empty(
            $cookies)) {
                    
            fputs($fp"Cookie: ");
                    foreach (
            $cookies as $key => $val) {
                        
            $pair $key.'='.urlencode($val).';';
                        
            fputs($fp$pair);
                    }
                    
            fputs($fp"\n");
                }

                
            fputs($fp"Host: $host\n");
                
            fputs($fp"Content-type: application/x-www-form-urlencoded\n");
                
            fputs($fp"Content-length: " strlen($data) . "\n");

                if (
            $useragent)
                    
            fputs($fp"User-Agent: $useragent\n");

                
            fputs($fp"Connection: close\n\n");

                if (
            $method == 'POST')
                    
            fputs($fp$data);

                
            $header '';
                
            $content '';

                
            $bHead TRUE;
                while (!
            feof($fp)) {        // <--- Zeile 51
                    
            $buf fgets($fp);     // <--- Zeile 52
                    
            if ($bHead) {
                        
            $header .= $buf;
                        
            $buf trim($buf);
                        if (empty(
            $buf))
                            
            $bHead FALSE;
                    }
                    else
                        
            $content .= $buf;
                }


                
            fclose($fp);
                return array(
            $header$content);
            }

            function 
            getCookies($header) {

                
            $cookies = array();
                if (
            preg_match_all("/Set-Cookie: ([^=]*)=([^,;\r\n ]*)/s"$header$match)) {
                    
            $cnt count($match[0]);
                    for (
            $i 0;$i $cnt$i++)
                        
            $cookies[$match[1][$i]] = urldecode($match[2][$i]);
                }
                return 
            $cookies;

            }

            ?> 
            Aufgerufen werden diese Funktionen so:
            PHP-Code:
            <?php
                
            include('send2host.php');

                
            $host 'intranet.xxxxx.org';
                
            $method 'GET';

                
            $path '/PE/mainframe.php';

            #    $params = array(); 
            /* oder z.B.
                $params['id'] = 125;
                $params['forum'] = 'mysql';
            */
                
            $params[path] = '1,2,22';

                
            $cookies = array();

            /* oder z.B.
                $cookies['thwb_cookie'] = 'hier mußt du eintragen was du im browser findest';
                $cookies['SID'] = 'und hier nun die wirkliche SID';
            */

                
            $useragent 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1';

                list(
            $head$contents) = sendToHost($host,$method,$path,$params,$cookies,$useragent);

                
            $cookies getCookies($head);

                
            /* So zeigt man einfach die Seite an
                echo $contents;
                */

                /* Das ist der Header */
                
            echo "<pre>HEADER:$head</pre>";

                
            /* Und die Cookies? */
                
            echo "<pre>COOKIES:";print_r($cookies);echo "</pre>";

            ?>
            [COLOR=crimson]//EDIT
            Mein error_log ist nach 30sec bei krasse 10MB wenn ich das script ausführe... und wie gesagt immer nur mit den oben genannten Fehler im wechsel...

            Das macht sicher die while-schleife... aber warum?[/COLOR]
            Zuletzt geändert von Nordin; 23.03.2006, 10:34.

            Kommentar


            • #21
              Sehe ich das richtig, dass du dich einfach blind darauf verlässt, dass fsockopen() "funktioniert" hat - und du nicht mal eine rudimentäre Fehlerbehandlung machst ...?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #22
                Ne nee nich ganz... kurioser Weise funktioniert es aber wieder...

                Bin mir selber nich ganz schlüssig an was es lag.

                Ok danke soweit erstmal für euer Bemühen und Ausdauer mit mir.

                Kommentar

                Lädt...
                X