PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Mit CURL und PHP auf der Commerzbank-Seite einloggen (http://www.selfphp.de/forum/showthread.php?t=11710)

burpy 11.11.2005 22:08:44

Mit CURL und PHP auf der Commerzbank-Seite einloggen
 
Hi,

ich versuche mich per CURL und PHP bei der Commerzbank einzuloggen, um die Umsätze meines Kontos auslesen zu können. Als erstes rufe ich die Startseite-Seite auf und lese die sog. wspl-ID aus. Dann sende ich mit CURL das Login-Formular ab, erhalte aber eine andere Fehlermeldung, als wenn ich das gleiche mit dem Browser machen würde. Hier scheitere ich dann.

Die UserID und das Passwort sind natürlich erfunden und funktionieren nicht, da ich ja nicht meine korrekten Daten weitergeben kann. Mit dem Browser kommt aber die Meldung, dass die Zugangsdaten nicht korrekt sind. Mit CURL kommt eine andere nichtsaussagende Fehlermeldung.

Cookies werden keine gesetzt und Javascript braucht die Seite auch nicht. Hat jemand von euch einen Tip für mich?

PHP-Code:

<?
class commerzbanking {

    function seite_einlesen($url, $formvars="", $header=true) {
        $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)";
        $ch = curl_init($url);
        if($this->referer) {
            curl_setopt($ch, CURLOPT_REFERER, $this->referer);
            $this->referer = "";
        }
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
        curl_setopt($ch, CURLOPT_HEADER, $header);
        if($formvars) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, $formvars);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
    
    function login($userid, $pw) {
        $html_code = $this->seite_einlesen("https://portal01.commerzbanking.de/P-Portal/XML/IFILPortal/pgf.html?Tab=3");
        
        preg_match("/\"hidden\" name=\"WSPL_ID\" value=\"(.*?)\">/", $html_code, $output); // in der WSPL_ID steckt verschlüsselt die ZielURL drin
        $wspl_id = $output[1];
        
        $formvars["PltLogin_8_Anmeldename"] = $userid;
        $formvars["PltLogin_8_Pin"] = $pw;
        $formvars["WSPL_ID"] = $wspl_id;
        $formvars["PltLogin_8_btnLogin.x"] = "53";
        $formvars["PltLogin_8_btnLogin.y"] = "6";
        $this->referer = "https://portal01.commerzbanking.de/P-Portal/XML/IFILPortal/pgf.html?Tab=3";
        echo $html_code = $this->seite_einlesen("https://portal01.commerzbanking.de/P-Portal/XML/IFILPortal/pgf.html?Tab=1", $formvars);
    }
    
}

$commerzbanking = new commerzbanking();
$commerzbanking->login("1234567891", "12345");
?>


burpy 11.11.2005 23:51:44

AW: Mit CURL und PHP auf der Commerzbank-Seite einloggen
 
Hab das Problem selbst lösen können. $formvars darf kein Array sein, sondern muss ein Integer sein, mit aneinandergereihten Parametern also so:
PHP-Code:

$formvars "PltLogin_8_Anmeldename=".$userid."&PltLogin_8_Pin=".$pw."&WSPL_ID=".$wspl_id."&PltLogin_8_btnLogin.x=53&PltLogin_8_btnLogin.y=2"


MarkusStruebel 26.10.2009 21:14:45

AW: Mit CURL und PHP auf der Commerzbank-Seite einloggen
 
Hat jemand sowas schon für die Deutsche Bank versucht?

DokuLeseHemmung 26.10.2009 21:20:00

AW: Mit CURL und PHP auf der Commerzbank-Seite einloggen
 
Im allgemeinen bieten Banken ein API !

Ein fernsteuern der Website wird sicherlich nicht gern gesehen.

phpcoder 08.12.2009 10:41:28

AW: Mit CURL und PHP auf der Commerzbank-Seite einloggen
 
Zitat:

Zitat von DokuLeseHemmung (Beitrag 131697)
Im allgemeinen bieten Banken ein API !

Ein fernsteuern der Website wird sicherlich nicht gern gesehen.

Dass ist kein direktes fernsteuern, wenn du dich mit CURL, ähnlich wie ein Browser auf der Webseite einlogst und die ausgegebenen Daten verarbeitest. Der Nachteil an dieser Art ist Recht einfach erklärt, man hat immer wieder das Problem, wenn die Formularfelder beziehungsweise die Struktur der Webseite geändert wird, dann funktioniert ein solches Script in den meisten Fällen nicht mehr ordnungsgemäß.

Eine Webseite wird nun mal häufiger geändert als wie eine API Schnittstelle. Daher sollte man sich Gedanken machen ob es nicht sinnvoll ist, eine vorhandene API Schnittstelle zu verwenden.

Grüße Nico

cortex 08.12.2009 10:53:27

AW: Mit CURL und PHP auf der Commerzbank-Seite einloggen
 
Zitat:

Zitat von phpcoder (Beitrag 132930)
Daher sollte man sich Gedanken machen ob es nicht sinnvoll ist, eine vorhandene API Schnittstelle zu verwenden.

nichts anderes hat doku bereits gesagt.

es ergibt i.d.r. auch keinen sinn, untote (inaktive) threads wieder zum leben zu erwecken - das thema ist erledigt / der op zeigt kein interesse mehr.

[mod: closed]

cx


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:54:27 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.