|
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
GTA26 Neuer User
Anmeldungsdatum: 22.04.2008 Beiträge: 11
|
28.04.2008 21:39 Session und Cookie von HTTP_Request an HTTP_Client übergeben |
|
|
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?
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  |
|
| Nach oben |
|
 |
Digital Jedi User
Anmeldungsdatum: 18.06.2004 Beiträge: 308
|
29.04.2008 7:45 |
|
|
| 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 |
|
 |
GTA26 Neuer User
Anmeldungsdatum: 22.04.2008 Beiträge: 11
|
29.04.2008 17:14 |
|
|
Also es ist so, wenn ich mich auf die Externe Seite anmelde wird mir die Seite nicht angezeicht
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
Hab null ahnung an was das liegen könnte
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  |
|
| Nach oben |
|
 |
Digital Jedi User
Anmeldungsdatum: 18.06.2004 Beiträge: 308
|
30.04.2008 7:22 |
|
|
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 |
|
 |
GTA26 Neuer User
Anmeldungsdatum: 22.04.2008 Beiträge: 11
|
30.04.2008 18:05 |
|
|
He super genial!!!! Du bist der Beste 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()]])
Mit dem kann man als neuling wirklich nichts anfangen
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
Falls ich weitere Fragen haben sollte, mach ich ein post ins Forum
Nochmals vielen Dank!
LG GTA26 :D _________________ _______________________________________________
____ _____ ____ __
/ ___|_ _ |/ \ |___ \ / /_
| | _ | | / _ \ __) || _ \
| |_| || | / ___ \ / __/_ (_) |
\____||_/_/ \_\_____|\___/
Wissen ist Macht, es nicht zu wissen macht auch nichts  |
|
| Nach oben |
|
 |
1234d1 Neuer User
Anmeldungsdatum: 11.12.2009 Beiträge: 1
|
11.12.2009 15:35 |
|
|
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 |
|
 |
|
|
|
Zu Deinen Favoriten hinzufügen
|
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
|
|