Probuje sie zalogowac na strone http://www.firmy.hbi.pl/cms-hbi/loguj.asp?f=ok uzywajac biblioteki curl.
Z tego co przeanalizowalem, powyzszy skrypt dziala tak, ze jesli otrzyma jakies zmienne z POST to sprawdza czy poprawne dane logowania - jesli tak to przekierowuje na strone http://www.firmy.hbi.pl/cms-hbi/srodek_pol.asp , natomiast jesli nie to wyswietla odpowiedni komunikat.
moj skrypt, ktory odpalam z localhosta:
<?php $cookie_file = 'cookie.txt'; $url = 'htt://www.firmy.hbi.pl/cms-hbi/loguj.asp?f=ok'; $postFields['identyfikator'] = '#identyfikator#'; $postFields['pin'] = '#haslo#'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; r:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_REFERER, "htt://www.firmy.hbi.pl/cms-hbi/loguj.asp"); $output = curl_exec($ch); if (curl_errno($ch)) { } curl_close($ch); ?>
wynikiem dzialania jest strona http://www.firmy.hbi.pl/cms-hbi/loguj.asp z komunikatem o blednym logowaniu.
W pliku cookie zapisuja sie nastepujace informacje:
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
www.firmy.hbi.pl FALSE / FALSE 0 ASPSESSIONIDQAATDDTT HKDAKIPDGLBNFPAFANIHALGD
wiec jakies informacje o sesji tam trafiaja.
Dla testow stworzylem lokalnie plik html z formularzem zawierajacym te dwa pola (identyfikator, pin) z akcja taka jak powyzszy url i po odpaleniu formularza bez problemu udaje sie zalogowac.
Probowalem jeszcze zrobic to tak, ze najpierw sie loguje na stronie:
<?php $cookie_file = 'cookie.txt'; $url = 'htt://www.firmy.hbi.pl/cms-hbi/loguj.asp?f=ok'; $postFields['identyfikator'] = '#identyfikator#'; $postFields['pin'] = '#haslo#'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; r:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); -- to teraz wywalone curl_setopt($ch, CURLOPT_REFERER, "htt://www.firmy.hbi.pl/cms-hbi/loguj.asp"); $output = curl_exec($ch); if (curl_errno($ch)) { } curl_close($ch); ?>
a nastepnie, lacze sie curl ze strona na ktora normalnie powinienem zostac przekierowany po udanym logowaniu (oczywiscie to wszystko w jednym skrypcie)
<?php $url = 'htt://www.firmy.hbi.pl/cms-hbi/srodek_pol.asp'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; r:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, "htt://www.firmy.hbi.pl/cms-hbi/loguj.asp"); $output = curl_exec($ch); if (curl_errno($ch)) { } curl_close($ch); ?>
ale w wyniku dostaje strone http://www.firmy.hbi.pl/cms-hbi/srodek_pol.asp z komunikatem ze nie jestem zalogowany (czyli tak, jakby ja wpisac "z palca" w przegladarce)
czy ktos wie w czym moze byc problem?