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
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Curl sam te ciacha potem wysle [ale mozesz miec takie ustawione JavaScriptem, ktorych curl nie obsluzy]
Zobacz jakie ciacha sa ustawiane responsem:
Kod
Set-Cookie: ....

a jakie potem wysylane w requescie
Kod
Cookie:...

jak te same to nie ma JSowych ciach

Wyslij formularz logowania i zobacz jakie dane ida POST'em, przez co nie musisz [prawdopodobnie] analizaowac id JS'a, tylko podstawiasz odpowiednie dane na sztywno.

i odtworz "wszystkie" naglowki
Kod
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

bo czasem te dane tez weryfikuja w czasie logowania.
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:21