PEAR-Forum.de Übersicht Thema anzeigen - Session und Cookie von HTTP_Request an HTTP_Client übergeben

Session und Cookie von HTTP_Request an HTTP_Client übergeben


 

PEAR-Forum.de Übersicht » HTTP
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
GTA26
Neuer User


Anmeldungsdatum: 22.04.2008
Beiträge: 11

Beitrag28.04.2008 21:39    Session und Cookie von HTTP_Request an HTTP_Client übergeben Antworten mit Zitat

Hallo Leute, hab schon wieder eine Frage.

Ist es möglich die Session und Cookies die man mit der HTTP_Request Klasse aufgerufen hat an die
HTTP_Client Klasse zu übergeben? Oder wirt das Automatisch gehandhabt?
Ich weiss, PEAR kann sehr viel, aber alles wird es wohl nicht können. Oder? Wink

Hier mein Code

Code:

<?

                     // TimeOut verhindern
                     set_time_limit(0);

                     //Starte HTTP Client
                     require_once "HTTP/Request.php";
                     require_once "HTTP/Client.php";
                     // Neues Objekt mit URL instanziieren
                     $req = new HTTP_Request("http://irgendwas.com/go/login");
                     $req->setMethod(HTTP_REQUEST_METHOD_POST);
                     $req->addHeader("User-Agent","Opera/8.0 (Windows NT 5.1; U; de)");
                     $req->addHeader("Connection","Keep-Alive");
                     $req->addHeader("Referer","http://iregendwas.com");             
                     $req->addPostData("action", "login");
                     $req->addPostData("target", "-");
                     $req->addPostData("nickname", "xxxxx");
                     $req->addPostData("password", "*****");
                     $req->addPostData("remember", "YES");
                     $req->addPostData("submit", "Anmelden");
                     //$req->addQueryString("senden", "senden");
                     
                     // Request an den Server schicken
                     $req->sendRequest();
                     //echo $req->getResponseBody()."<br>";          
         
                     if (PEAR::isError($response))
                     {
                       echo $response->getMessage();
                     }   
                     else
                     {
                     //echo $req->sendRequest()."<br>";
                     echo $req->getResponseBody()."<br>";
                     print_r($req->getResponseCookies())."<br>";
                     //foreach ($req->getResponseHeader() as $name => $value)
                     //{echo $name . " = " . $value . "\n";}
                     }   


                     //Anfang wert der URL         
                     $urlendung = 0;

         do {   
                     $urlendung+= 1;
                     echo "Seite".$urlendung."<br>";
                           
                     $link = "http://www.testsuche".$urlendung.".html";
   
                     $client =& new HTTP_Client();
                     $code = $client->get($link);
                     $res =& $client->currentResponse();
                     //echo $res['body']."\n";
                     $html = $res['body']."\n";
                  
               
                  // Abfrage ob es weitere ID's zu hollen gibt   
//-------------------------------------------------------------------------------------------------            
                  if (preg_match("/class\=\"next\"/", $html))
                  {
                  $weiter = true;
                  "Es geht weiter weill Button rechts gefunden worde<br>";
                  }
                  else
                  {
                  $weiter = false;
                  "Fertig da kein Button rechts gefunden worden ist<br>";
                  }
               
//-------------------------------------------------------------------------------------------------

      // ID's werden geholt bis keine mehr vorhanden sind
      }while ($weiter);

?>


Danke in voraus

_________________
_______________________________________________

____ _____ ____ __
/ ___|_ _ |/ \ |___ \ / /_
| | _ | | / _ \ __) || _ \
| |_| || | / ___ \ / __/_ (_) |
\____||_/_/ \_\_____|\___/

Wissen ist Macht, es nicht zu wissen macht auch nichts Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Digital Jedi
User


Anmeldungsdatum: 18.06.2004
Beiträge: 308

Beitrag29.04.2008 7:45     Antworten mit Zitat

Das ist ja der Sinn des HTTP_Client-Paketes. Wenn Du damit z.B. einen POST-Request sendest, um Dich auf einer Seite einzuloggen, bleibt der Cookie auch für die darauf folgenden Requests erhalten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
GTA26
Neuer User


Anmeldungsdatum: 22.04.2008
Beiträge: 11

Beitrag29.04.2008 17:14     Antworten mit Zitat

Also es ist so, wenn ich mich auf die Externe Seite anmelde wird mir die Seite nicht angezeicht Sad
und als getResponseHeader Wert wird mir die 1 angezeigt.
Ausser ich lasse etwas aus wie z.B dass PW oder Username. Dann kommt eine Meldung von der
externen Seite, das ich vergessen habe PW oder Username auszufüllen.
Dazu verwende ich "echo $req->getResponseBody()" natürlich ohne die "" Zeichen Wink
Hab null ahnung an was das liegen könnte Sad
Hat jemand von euch eine Ahnung?


Noch eine weitere Frage:
Gibt es da auch bessere dokumentationen?
Vieleicht auf deutsch?

Kann mir jemand ein PEAR Kochbuch empfehlen?

Vieleicht nicht gerade das Openbook. Das ist zwar OK aber noch zu wenig Informativ.
LG GTA26

_________________
_______________________________________________

____ _____ ____ __
/ ___|_ _ |/ \ |___ \ / /_
| | _ | | / _ \ __) || _ \
| |_| || | / ___ \ / __/_ (_) |
\____||_/_/ \_\_____|\___/

Wissen ist Macht, es nicht zu wissen macht auch nichts Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Digital Jedi
User


Anmeldungsdatum: 18.06.2004
Beiträge: 308

Beitrag30.04.2008 7:22     Antworten mit Zitat

Für mich funktioniert folgendes:

PHP:
<?php
$client 
= new HTTP_Client();
$code   $client->post('http://www.domain.com/login.php',
                        array(
'username' => 'user',
                              
'password' => 'password',
                              
'submit'   => 'submit'
                             
)
                       );

if (
$code === 200) {
    
$code $client->get('http://www.domain.com/nextpage.php');

    if (
$code === 200) {
        
$response $client->currentResponse();
        
$html     $response['body'];
    }
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
GTA26
Neuer User


Anmeldungsdatum: 22.04.2008
Beiträge: 11

Beitrag30.04.2008 18:05     Antworten mit Zitat

He super genial!!!! Du bist der Beste Wink hehe
Vielen Dank! Kannst du mir sagen von wo du diese Infos zu Pear hast?
Also wo ich das ganze nachschauen kann?
Oder hast du es von http://pear.php.net/manual/en/package.http.http-client.http-client.post.php?
Ich check die darsellung nicht, denn dort wird es auf folgende Art gezeigt.
integer HTTP_Client::post (string $url, mixed $data [, boolean $preEncoded = FALSE [, array $files = array()]])
Sad Mit dem kann man als neuling wirklich nichts anfangen Sad
Auf http://www.php.net/ ist wenigstens alles gut Beschrieben mit Beispiele die man sehr gut
nachvollziehen kann. Bin wohl zu blöde oder so Sad
Falls ich weitere Fragen haben sollte, mach ich ein post ins Forum Smile

Nochmals vielen Dank!
LG GTA26 :D

_________________
_______________________________________________

____ _____ ____ __
/ ___|_ _ |/ \ |___ \ / /_
| | _ | | / _ \ __) || _ \
| |_| || | / ___ \ / __/_ (_) |
\____||_/_/ \_\_____|\___/

Wissen ist Macht, es nicht zu wissen macht auch nichts Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
1234d1
Neuer User


Anmeldungsdatum: 11.12.2009
Beiträge: 1

Beitrag11.12.2009 15:35     Antworten mit Zitat

Hallo, muss man sich für die oben genannten Aufgabe also Post/GET Request + Cookies bzw. auch https Unterstützung mehre Pakete runterladen oder gibt es hier irgendwo ein Gesamtpaket?

Danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » HTTP
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen