Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mBank - logowanie z automatu
Spoky
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.03.2008

Ostrzeżenie: (0%)
-----


Witam. Czy ktos z forumowiczow walkowal ten temat? Potrzebuje stworzyc na wlasne potrzebny taki automato do logowania sie i pobierania wyciagu z danego okresu celem dalszej obrobki. Napisalem kawalek kodu, ale za cholere nie chce dzialac. kiedys pisalem do pkointeligo i dzialalo bez problemu, do mbanku dobrac sie nie moge :-(
mam takie cus. Mysle, ze strony obrobilem wszystkie dane, nie wiem co z info z ciastkami. Czy jest jakis sposob zeby przesledzic dokladniej, co i jak po kolei?

Kod
<?php

function pobierz_zaw($url)
{  
  
  $czytaj = curl_init();
  curl_setopt ($czytaj, CURLOPT_URL, $url);
  curl_setopt ($czytaj, CURLOPT_HEADER, false);
  curl_setopt($czytaj, CURLOPT_SSL_VERIFYPEER, false); //SSL
  curl_setopt($czytaj, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies1.txt');
  curl_setopt($czytaj, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies2.txt');
  ob_start();
  curl_exec ($czytaj);
  curl_close ($czytaj);
  $file = ob_get_contents();
  //print $file;
  ob_end_clean();
  return $file;
}


function formularz_logowanie($url,$nsid, $nstate, $nvalid, $akt_data)
{  
  
  $czytaj = curl_init();

$curlPost = array();
$curlPost['customer'] = ' ';
$curlPost['password'] = ' ';
$curlPost['__EVENTVALIDATION'] = $nvalid;
$curlPost['seed'] = $nsid;
$curlPost['localDT'] = $akt_data;
$curlPost['__PARAMETERS'] = '';
$curlPost['sCounter'] = '0';
$curlPost['__STATE'] = $nstate;
$curlPost['__VIEWSTATE'] = '';
$curlPost['menu'] = 'true';
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0";

curl_setopt ($czytaj, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($czytaj, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($czytaj, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($czytaj, CURLOPT_POST, 1);
curl_setopt($czytaj, CURLOPT_FAILONERROR, true);
curl_setopt($czytaj, CURLOPT_POSTFIELDS, $curlPost);
curl_setopt($czytaj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($czytaj, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($czytaj, CURLOPT_URL, $url);

curl_setopt($czytaj, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies1.txt');
curl_setopt($czytaj, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies2.txt');


  ob_start();
  $data = curl_exec ($czytaj);
  
  curl_close ($czytaj);
  $file = ob_get_contents();
  ob_end_clean();
  print $data;
  return $file;
}


$url='https://www.mbank.com.pl/';
$logowanie = pobierz_zaw($url);

preg_match("/name=\"seed\" id=\"seed\" value=\"(.*?)\" \/>/", $logowanie, $sid);
$nsid = $sid[1];

preg_match("/name=\"__EVENTVALIDATION\" id=\"__EVENTVALIDATION\" value=\"(.*?)\" \/>/", $logowanie, $valid);
$nvalid = $valid[1];

preg_match("/name=\"__STATE\" id=\"__STATE\" value=\"(.*?)\" \/>/", $logowanie, $state);
$nstate = $state[1];
$akt_data = date("Y-m-d H:i");

$zalogowany = formularz_logowanie($url,$nsid, $nstate, $nvalid, $akt_data);
print $zalogowany;
?>


Ten post edytował Spoky 13.07.2008, 16:13:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Spoky
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.03.2008

Ostrzeżenie: (0%)
-----


Chyba nie dam rady, bez pomocy, za cienki jestem. Poza tym przydaloby sie jeszcze cos do sledzenia zmiana na bierzaco... Wiec tak
Kod
https://www.mbank.com.pl/
   GET / HTTP/1.1
   Host: www.mbank.com.pl
   User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15
   Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
   Accept-Language: pl,en-us;q=0.7,en;q=0.3
   Accept-Encoding: gzip,deflate
   Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
   Keep-Alive: 300
   Connection: keep-alive
   Cookie: mb-logout=3; mBankLang1140=P; mBank1=TEMP42028753652D9D994A72541F7F8CF80F; wnd=notset; mBank2=OBMeE6x29_vxJ1BCmz7ufw==
   HTTP/1.x 200 OK
   Cache-Control: pre-check=0
   Keep-Alive: timeout=3, max=993
   Pragma: no-cache
   Content-Length: 15978
   Content-Type: text/html; charset=iso-8859-2
   Expires: Mon, 26 Jul 1997 05:00:00 GMT
   X-Powered-By: ASP.NET
   X-AspNet-Version: 2.0.50727
   Set-Cookie: mBank1=TEMP5D6E0DEF64096A386CF0542E3AB065DA; path=/; secure
   Set-Cookie: mBankLang1140=P; expires=Sat, 09-Apr-2011 18:40:24 GMT; path=/
   Server: mBank Web Server
   Date: Sun, 13 Jul 2008 18:40:24 GMT


Nie znam sie na ciastkach, ale
curl_setopt($czytaj, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies1.txt')
zapisuje mi

Kod
www.mbank.com.pl    FALSE    /    TRUE    0    mBank1    TEMP385BD4B494D095F037BD68B7BEBD7AE6
www.mbank.com.pl    FALSE    /    FALSE    1302363451    mBankLang1140    P


Tylko co dalej z tym. Byc moze sa to kluczowe dane. Jak pisalem wyzej, wszystkie pola hidden, ktore sa ustawiane po zaladowaniu strony logowania orzymuja jakies wartosci maja te wartosci przypisane. Czyli otwiera, wyszukuje wartosci, nadaje zmiennym w form te wartosci i wysylam. Przypuszczam, ze javascript i cookie tez ma tu cos do powiedzenia.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 22:47