cURL: Login auf externer Seite funktioniert nicht
Maddin
- php
0 hotti
Hallo liebe selfhtml'er,
ich sitze jetzt schon ein paar Stunden an ein und dem gleichen Problem und komme kein Stückchen weiter.
Es geht um folgendes: Für ein Online-Spiel gibt es Player-Statistiken, welche nur betrachtet werden können, wenn man eingeloggt ist. Diese Statistiken würde ich gerne in Form von einem Signatur-Banner zusammenfassen - halt die wichtigsten Infos.
Ja, dies ist auch erlaubt - es gibt größere Seiten, die dies für genau dieses Spiel anbieten, mit mehreren Millionen erstellten Signaturen - nur ich wollte dies selber erstellen und personalisieren.
Gedacht habe ich mir, dass ich dies folgendermaßen löse:
Ich logge mich per cURL auf der Homepage ein, steuere dann (mit dem aktiven Login durch die Cookies) das Profil an und suche mir die Informationen heraus, die ich benötige.
Leider scheitert es schon an dem Login.
Ich habe jetzt bestimmt schon 10 verschiedene Wege über cURL versucht, aber keiner bringt mich in den Login-Bereich.
Code:
$ch = curl_init();
$cookies = "cookies.txt";
curl_setopt($ch, CURLOPT_URL, "http://passport.nexoneu.com/Login.aspx?nexoneuTheme=NexonEU");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$data = array(
'txtLogin0' => '********',
'txtPassword0' => '********',
'__VIEWSTATE' => '/wEPDwUJLTQ2MjY3ODIzD2QWAgIBDxYCHgVjbGFzcwURbmV4b25ldUJhY2tncm91bmQWAgIBD2QWCmYPFgIfAAURbmV4b25ldUJhY2tncm91bmRkAgEPFgIeBXN0eWxlBQ5kaXNwbGF5OmJsb2NrO2QCAg8WAh8BBQ1kaXNwbGF5Om5vbmU7ZAIFDxYCHgpvbmtleXByZXNzBUppZiAoZXZlbnQua2V5Q29kZSA9PSAxMykgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuTG9naW4nKS5vbmNsaWNrKCk7fWQCBg8WAh4Hb25jbGljawWDAWphdmFzY3JpcHQ6aWYoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGtTYXZlSUQnKS5jaGVja2VkID09IHRydWUpeyBhbGVydCgnUGxlYXNlIHVuY2hlY2sgaWYgeW91IGFyZSB1c2luZyBhIHNoYXJlZCBjb21wdXRlci4nKTt9ZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAwUIYnRuTG9naW4FCWNoa1NhdmVJRAUJYnRuTG9naW4xRi5M6foBQovb2bAwQRi03Fumc9M=',
'__EVENTVALIDATION' => '/wEWCAKAxLumCALkhOqVCgKC3IeGDAK1qfSoDQLvgdnJBgLlhOqVCgLB6b6zDAK1qeDNBFA1JIttOdUQBeWh/2Eh2aPAM31s',
'txtLogin1' => '',
'txtPassword1' => '',
'btnLogin' => '',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
__EVENTVALIDATION und __VIEWSTATE haben seit gestern die gleichen Werte, darum denke ich nicht, dass es an denen liegt. Die leeren Werte sind für einen zweiten Login, den ich nicht nutzen muss.
Auch ohne Array und mit anderen Optionen hat es noch nicht geklappt.
-----------------
cookies.txt:
#HttpOnly_passport.nexoneu.com FALSE / FALSE 0 ASP.NET_SessionId orqsjlrzcz0fs5yxhk32wz45
passport.nexoneu.com FALSE / FALSE 0 BIGipServerpEU-PORTAL_80_passport 2718566922.20480.0000
-----------------
Hat jemand eine Ahnung, woran dies liegen könnte? Ich verzweifel hier gerade...
LG Maddin
hi,
Hat jemand eine Ahnung, woran dies liegen könnte? Ich verzweifel hier gerade...
Wieso verzweifeln? Finde heraus, was in der Response das Kriterium für eine erfolgreiche Anmeldung ist. Ein Cookie mit einer ID im Response-Header ist es möglicherweise nicht.
Hotti