Wie gaukle ich ein cookie vor, das nicht existiert?

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

  • Wie gaukle ich ein cookie vor, das nicht existiert?

    Hi,

    ich möchte mittels php html-Daten aus einem geschützen Bereich auslesen. Um via Browser zu diesem Bereich zu gelangen, muss ich mich einloggen, bzw. werde mittels autologin eingeloggt. Die login Daten liegen in einem cookie auf meinem rechner.

    Somit weiß ich, was in dem cookie steht.

    Doch wenn ich jetzt mit der Seite lesen.php auf die Seite seite.pl zugreife:
    PHP-Code:
    $handle fopen ("http://seite.pl?id=132""r"); 
    dann kommt folgendes zurück (jew. ein ' ' eingefügt, damit mein browser es nicht als code missversteht):

    < H T M L > < H E A D > < T I T L E > R e d i r e c t i n g . . . < / T I T L E > < M E T A H T T P - E Q U I V = " r e f r e s h " C O N T E N T = " 0 ; U R L = / ? /
    s h o w _ t g a m e s . p l = = i d = 1 3 2 " > < M E T A H T T P - E Q U I V = " E x p i r e s " C O N T E N T = " 0 " > < M E T A h t t p - e q u i v = " P r a
    g m a " c o n t e n t = " n o - c a c h e " > < M E T A h t t p - e q u i v = " C a c h e - C o n t r o l " c o n t e n t = " n o - c a c h e " > < M E T A N A M E = "
    R O B O T S " C O N T E N T = " N O I N D E X , N O F O L L O W " > < / H E A D > < B O D Y B G C O L O R = " # 3 3 3 3 4 4 " L I N K = " # F F 9 9 3 3 " V
    L I N K = " # F F 9 9 3 3 " A L I N K = " # F F 9 9 3 3 " > < b r > < b r > < c e n t e r > < f o n t c o l o r = " # F F F F C C " f a c e = " V e r d a n a , A r i a
    l , H e l v e t i c a , s e r i f " > < s p a n s t y l e = " f o n t - s i z e : 1 2 p x ; f o n t - w e i g h t : b o l d ; " > E r r o r l o g g i n g y o u i n , < a h r e f
    = " / ? / s h o w _ t g a m e s . p l = = i d = 1 3 2 " > c l i c k h e r e t o p r o c e e d < / a >
    . . . < / s p a n > < / f o n t > < / c e n t e r > < / B O D Y >
    < / H T M L >

    Ich interpretiere das mal so, dass seite.pl den cookie bei einem solchen Aufruf nicht findet (ist ja auch logisch) - ich muss also seite.pl irgendwie vorspielen, dass der cookie vorhanden ist.
    setcookie() setzt aber ja einen cookie auf dem Rechner desjeningen, der das php-script aufruft, nicht dort, wo es eigentlich benötigt wird. Und da setcookie ja beim Aufruf von lesen.php ein cookie für lesen.php setzt, nicht für seite.pl, hilft das nicht so recht.

    Wo müssen also die cookie-Daten stehen, damit seite.pl sie für den autologin akzeptiert?

    Mir reichen ein paar Stichwörter/links (bzw.: ich bin willens, es nach ein paar solchen erstmal eine Weile selbst weiter zu probieren )

  • #2
    Stichwörter libCURL, fsockopen, dann noch die cookie specs (sind von Netscape, nicht ein RFC) ausgoogeln.

    Kommentar


    • #3
      hier ist eine fertige classe
      http://www.phpclasses.org/browse/package/576.html
      Slava
      bituniverse.com

      Kommentar


      • #4
        urgh.... sieht nach viel zu Lesen/Lernen aus. Dabei wollte ich doch so gern dumm bleiben...

        Danke erstmal!

        Kommentar


        • #5
          fsockopen ist das lohnendste zum Lernen, weil Du direkt auf der HTTP RFC (bzw. Netscape) bist. Mit den anderen lernst Du "zusätzlich" noch wrappers.

          Es hat genügend Beispiele hier im forum, und eines im manual (unter fsockopen...)

          Kommentar


          • #6
            Cool! Curl ist der totale Volltreffer (viva la Superlativa)

            Damit kann man solange herumspielen bis man weiß, was der Server eigentlich genau will und das Resultat, die eigentliche *.htm, in einer Datei speichern.

            Jetzt muss ich mich nur noch etwas in die CurlLib einarbeiten und das entsprechende php script coden...

            Danke erstmal!

            Kommentar


            • #7
              Schön,

              nachdem ich nun mit curl herausgefunden habe, was curl selbst bei einem get-request sendet, habe ich folgendes script gebastelt, was auch brav den Content der SEite in einer Datei speichert:

              PHP-Code:
              $header "GET /show_tgames.pl?id=132 HTTP/1.1\r\nUser-Agent:";
              $header .=" curl/7.15.4 (i586-pc-mingw32msvc) libcurl/7.15.4 ";
              $header .="OpenSSL/0.9.8b zlib/1.2.2\r\nHost: blablub.com\r\nAccept:";
              $header .=" */*\r\nCookie: USERID=******; PSW=*****;\r\n\r\n";

              $fp fsockopen($host80$errno$errstr);
              if (!
              $fp) {
                 echo 
              "$errstr ($errno)<br/>\n";
                 echo 
              $fp;
              } else {
                 
              $dat fopen("body.txt","w");
                 
              fputs($fp$header);
                 while (!
              feof($fp)) {
                     
              fwrite ($datfgets($fp1024));
                 }
                 
              fclose($fp);
                 
              fclose($dat); 
              Das einzige, unangenehme ist, dass er nach x Zeichen offenbar sowas wie eine "Checksumme" mitliefert. Z.B. so:

              PHP-Code:
              )">4548888</a></TD [. . . ] a</tr>
              <TR BGCOLOR=#444455> [. . .] 44)</span></TD></tr>
              <TR BGCOLOR=#555566><TD> [. . . ] >(1259)</span></TD></tr>
              <TR BGCOLOR=#444455><TD> [. . .] >(1875)</span></TD></tr>
              <TR BGCOLOR=#555566><TD> [. . .] >(1746)</span></td><TD><a href="
              /team.pl?id=
              1000
              606
              ">Icelandic Warriors</a></TD>[. . .] </span></TD></tr>
              .
              .
              .

              usw. Weiter unten steht ab und an auch eine 2000. Weiß jemand, was diese Zahlen bedeuteten, wer sie dort hinschreibt und wie ich sie ggf. unterdrücken kann?

              Grácias!
              Zuletzt geändert von alberlie; 02.07.2006, 12:43.

              Kommentar


              • #8
                Hmm, sieht so chunked aus ... Schau mal im Response-Header, unter Transfer-Encoding. Falls es sich darum handelt, schau mal im Manual zu fsockopen - Strg/F + chunked, dort findest Du einen Code, der das wieder zusammensetzt. Vielleicht bietet ja CURL auch entsprechendes

                Wenns nicht chunked ist ... ebenfalls
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  PHP-Code:
                  Transfer-Encodingchunked 
                  indeed. Danke!

                  Kommentar

                  Lädt...
                  X