witam
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_COOKIEJAR
, dirname(__FILE__) . "/" . $cookie_file );curl_setopt
($ch, CURLOPT_COOKIEFILE
, dirname(__FILE__) . "/" . $cookie_file);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)) {
echo curl_errno
($ch) . ' : ' . curl_error
($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 HKDAKIPDGLBNFPAFANIHALGDwiec 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_COOKIEJAR
, dirname(__FILE__) . "/" . $cookie_file );curl_setopt
($ch, CURLOPT_COOKIEFILE
, dirname(__FILE__) . "/" . $cookie_file);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)) {
echo curl_errno
($ch) . ' : ' . curl_error
($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_COOKIEJAR
, dirname(__FILE__) . "/" . $cookie_file );curl_setopt
($ch, CURLOPT_COOKIEFILE
, dirname(__FILE__) . "/" . $cookie_file);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)) {
echo curl_errno
($ch) . ' : ' . curl_error
($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?