Login externer Website ausführen und Quellcode zurückgeben?

jackie05

Erfahrenes Mitglied
Hallo,
ich versuche mich auf einer Website über PHP anzumelden, für eigene Zwecke, da ich ein Android App schreibe und mir eigene Daten anzeigen lassen möchte, das klappt einigermaßen, nur sind die Cookies nicht gesetzt.
Wie könnte ich die Cookies richtig auslesen und gleichzeitig dem Login übergeben?

Hab das mal so versucht:
PHP:
<?php
$url = 'https://test.de/login';
$postData = array();
$postData['Email'] = 'test';
$postData['Passwd'] = 'test';
$postData['PersistentCookie'] = 'yes';
$postData['login'] = 'login';

$cookies = Array();
$ch = curl_init($url);
// Ask for the callback.
curl_setopt($ch, CURLOPT_HEADERFUNCTION, "curlResponseHeaderCallback");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);


function curlResponseHeaderCallback($ch, $headerLine) {
    global $cookies;
    if (preg_match('/^Set-Cookie:\s*([^;]*)/mi', $headerLine, $cookie) == 1)
        $cookies[] = $cookie;
    return strlen($headerLine); // Needed by curl
}
$result = curl_exec($ch);
var_dump($cookies);

echo $result;
?>

ich bekomme immer die rückmeldung, das keine Cookies gesetzt sind, wie könnte ich das Problem beheben?

Ich danke euch schonmal für die Hilfe.

MfG
 
Vielen Dank.
Ich hab das mit "webbrowser-class-php" versucht, leider loggt er sich nicht ein, ich bekomme immer als rückgabe, das Loginformular selbst.

PHP:
<?php
$postData = "Email=test&";
$postData .= "Passwd=test&";
$postData .= "signIn=Sign in&";
$postData .= "PersistentCookie=yes";

$browser->post("https://test.de/login", $postData);

echo $browser->result;
?>

Kann mir da Vielleicht wer weiterhelfen?

Edit: Das Problem ist, das die Seite ein Code generiert und diese muss anscheinend beim Login übereinstimmen.
Wie mache ich das ambesten?

MfG
 
Zuletzt bearbeitet:
Das Grundprinzip ist es, den Login (bzw. das Abschicken dessen Formulars) nachzuahmen. Also holst du dir zuerst die Login-Seite, extrahierst den Code und schickst den beim finalen Login mit.
 
Zurück