Session und Cookie von HTTP_Request an HTTP_Client übergeben

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
GTA26
Mitglied
Beiträge: 20
Registriert: 20.04.2008 02:47
Wohnort: Zürich

Session und Cookie von HTTP_Request an HTTP_Client übergeben

Beitrag 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
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Was soll das fertige Script denn machen ?
GTA26
Mitglied
Beiträge: 20
Registriert: 20.04.2008 02:47
Wohnort: Zürich

Beitrag 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????
Antworten

Zurück zu „Coding & Technik“