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:
  1. <?php
  2. $cookie_file = 'cookie.txt';
  3.  
  4. $url = 'htt://www.firmy.hbi.pl/cms-hbi/loguj.asp?f=ok';
  5.  
  6. $postFields['identyfikator'] = '#identyfikator#';
  7. $postFields['pin'] = '#haslo#';
  8.  
  9. $ch = curl_init($url);
  10.  
  11. 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");
  12. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/" . $cookie_file );
  13. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/" . $cookie_file);
  14. curl_setopt($ch, CURLOPT_POST, 1);
  15. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  17. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  18. curl_setopt($ch, CURLOPT_REFERER, "htt://www.firmy.hbi.pl/cms-hbi/loguj.asp");
  19.  
  20. $output = curl_exec($ch);
  21.  
  22. if (curl_errno($ch)) {
  23.    echo curl_errno($ch) . '&nbsp: ' . curl_error($ch);
  24. }
  25. curl_close($ch);
  26.  
  27. echo $output;
  28. ?>


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:
  1. <?php
  2. $cookie_file = 'cookie.txt';
  3.  
  4. $url = 'htt://www.firmy.hbi.pl/cms-hbi/loguj.asp?f=ok';
  5.  
  6. $postFields['identyfikator'] = '#identyfikator#';
  7. $postFields['pin'] = '#haslo#';
  8.  
  9. $ch = curl_init($url);
  10.  
  11. 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");
  12. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/" . $cookie_file );
  13. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/" . $cookie_file);
  14. curl_setopt($ch, CURLOPT_POST, 1);
  15. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  16. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  17. //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); -- to teraz wywalone
  18. curl_setopt($ch, CURLOPT_REFERER, "htt://www.firmy.hbi.pl/cms-hbi/loguj.asp");
  19.  
  20. $output = curl_exec($ch);
  21.  
  22. if (curl_errno($ch)) {
  23.    echo curl_errno($ch) . '&nbsp: ' . curl_error($ch);
  24. }
  25. curl_close($ch);
  26. ?>


a nastepnie, lacze sie curl ze strona na ktora normalnie powinienem zostac przekierowany po udanym logowaniu (oczywiscie to wszystko w jednym skrypcie)
  1. <?php
  2. $url = 'htt://www.firmy.hbi.pl/cms-hbi/srodek_pol.asp';
  3.  
  4. $ch = curl_init($url);
  5. 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");
  6. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/" . $cookie_file );
  7. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/" . $cookie_file);
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($ch, CURLOPT_REFERER, "htt://www.firmy.hbi.pl/cms-hbi/loguj.asp");
  10.  
  11. $output = curl_exec($ch);
  12.  
  13. if (curl_errno($ch)) {
  14.    echo curl_errno($ch) . '&nbsp: ' . curl_error($ch);
  15. }
  16. curl_close($ch);
  17.  
  18. echo $output;
  19. ?>


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?