Geocaching & GPS location based games

Thema anzeigen - cURL Login


Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 4 Beiträge ] 


Autor Nachricht
 Betreff des Beitrags: cURL Login
BeitragVerfasst: Sa 14. Mai 2011, 10:13 
Offline
Geonewbie

Registriert: Sa 14. Mai 2011, 10:05
Beiträge: 3
Hi,

hat schon jemand von euch einen cURL Login mit PHP zusammengebracht?

Bei mir scheitert es leider irgendwo... ich dachte ich bin mit diesem Codeteil schon eingeloggt und brauche bei jeder weiteren Abfrage nur das Cookie und den Viewstate mitgeben. Leider funktioniert das nicht so wie gedacht.

Kann mir jemand einen Tipp geben?

Code:
$GCName = "xxx";
$GCPasswort = "xxx";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.geocaching.com/login/default.aspx');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.24');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_POST, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$indexseite = curl_exec($ch);
curl_close($ch);

preg_match('/id="__VIEWSTATE".*?value="(.*?)"/mis', $indexseite, $matches);
$viewstate = $matches[1];

preg_match('/id=\"__EVENTVALIDATION\".*?value=\"(.*?)"/mis', $indexseite, $matches);
$eventvalidation = $matches[1];

$params = array(
   //'__EVENTTARGET' => '',
   //'__EVENTARGUMENT' => '',
   '__EVENTVALIDATION' => $eventvalidation,
   //'__VIEWSTATFIELDCOUNT' => '2',
   '__VIEWSTATE' => $viewstate,
   'ctl00$ContentBody$tbUsername' => $GCName,
   'ctl00$ContentBody$tbPassword' => $GCPasswort,
   //'ctl00$ContentBody$cookie' => 'on',
   //'ctl00$ContentBody$Button1' => 'Login',
   'ctl00$ContentBody$cbRememberMe' => '1',
   'ctl00$ContentBody$btnSignIn' => 'Login'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.geocaching.com/login/default.aspx');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.65 Safari/534.24');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&'));
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
$loginseite = curl_exec($ch);
curl_close($ch);

echo $loginseite;


lG. Martin


Nach oben
   
 
 Betreff des Beitrags: Re: cURL Login
BeitragVerfasst: Sa 14. Mai 2011, 11:39 
Offline
Geoguru

Registriert: So 4. Jan 2009, 20:28
Beiträge: 3712
Wohnort: 72800 Eningen u.A.
erst mal würd ich https schreiben für die login Seite.

_________________
Bild


Nach oben
   
 
 Betreff des Beitrags: Re: cURL Login
BeitragVerfasst: Sa 14. Mai 2011, 23:50 
Offline
Geonewbie

Registriert: Sa 14. Mai 2011, 10:05
Beiträge: 3
Danke,

das habe ich aber leider schon versucht, es hat aber nichts geändert.

Gibt es sonst noch Ideen?


Nach oben
   
 
 Betreff des Beitrags: Re: cURL Login
BeitragVerfasst: So 15. Mai 2011, 23:22 
Offline
Geonewbie

Registriert: Sa 14. Mai 2011, 10:05
Beiträge: 3
Problem gelöst!

"http_build_query" ist in diesem Fall nicht richtig, da Dollarzeichen in dem Array sind, und diese falsch konvertiert werden.

ich habe diese einfach so aneinandergereiht, dann geht es.
Code:
foreach ($params AS $key => $value) {
   $postfields .= $key . '=' . $value . '&';
}
$postfields = rtrim($postfields, '&');


Trotzdem Danke und
lG. Martin


Nach oben
   
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Dieses Thema ist gesperrt. Du kannst keine Beiträge editieren oder weitere Antworten erstellen.  [ 4 Beiträge ] 


Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Impressum