Seite 1 von 1

Session und Cookie von HTTP_Request an HTTP_Client übergeben

Verfasst: 28.04.2008 23:39
von GTA26
Hallo Leute, hab schon wieder eine PEAR 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? ;-)

Hier mein Code

Code: Alles auswählen

<?

							// 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://*****.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://*****.com"); 				
							$req->addPostData("action", "login");
							$req->addPostData("target", "-");
							$req->addPostData("nickname", "*****");
							$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 im voraus

Verfasst: 29.04.2008 06:54
von Dr.Death
Was soll das fertige Script denn machen ?

Verfasst: 29.04.2008 19:20
von GTA26
Es sollte mich auf eine externe Seite Einlogen und meinen aktuellen Freundeskreis nach ihren User ID's scannen, damit ich ein Gruppen Mailversand tätigen kann.

Nun habe ich aber folgendes Problem
Wenn ich mich auf dieser Seite anmelde, wird mir die Seite nicht angezeicht
und als getResponseHeader Wert wird mir die 1 ausgegeben.
Ausser ich lasse etwas aus wie z.B dass PW oder Username. Dann kommt eine Meldung von der externen Seite mit dem hinweiss das ich vergessen habe PW oder Username auszufüllen.
Dazu verwende ich "echo $req->getResponseBody()" natürlich ohne die "" Zeichen. Jetzt habe ich null ahnung an was das liegen könnte oder was das zu bedeuten hatt. :-(
Bin ich angemeldet oder nicht? Und wieso wird mir der ResponseBody() nicht ausgegeben :-( Kommt er wohl mit der weiterleitung auf meiner Profielseite nicht klar????