Potrzebuje pobrac dane ze strony na ktora trzeba sie zalogowac. Wszystko bylo by fajnie i pieknie gdyby nie to, ze zeby pobrac dane trzeba jeszcze wyslac formularz. Mam taki skrypt, ktory powinien dzialac, ale wynik sprawie wrazenie jakby drugie "zapytanie" bylo od nowa, a nie po zalogowaniu.
Podejzewam ze strona trzyma logowanie w sesji, a drugie wywolanie traci sesje i dupa blada.
Korzystam z takiego kodu:
  1. function curl_login($url,$data){
  2. $fp = fopen("cookie.txt", "w");
  3. fclose($fp);
  4. $login = curl_init();
  5. curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
  6. curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
  7. curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  8. curl_setopt($login, CURLOPT_TIMEOUT, 40);
  9. curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
  10. curl_setopt($login, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  11. curl_setopt($login, CURLOPT_USERPWD, 'xxxxx:xxxxxx');
  12. curl_setopt($login, CURLOPT_URL, $url);
  13. curl_setopt($login, CURLOPT_HEADER, TRUE);
  14. curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  15. curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
  16. curl_setopt($login, CURLOPT_POST, TRUE);
  17. curl_setopt($login, CURLOPT_POSTFIELDS, $data);
  18. ob_start(); // prevent any output
  19. return curl_exec ($login); // execute the curl command
  20. ob_end_clean(); // stop preventing output
  21. curl_close ($login);
  22. unset($login);
  23. }
  24.  
  25. function curl_grab_page($site){
  26. $ch = curl_init();
  27. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  28. curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  29. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  30. curl_setopt($ch, CURLOPT_URL, $site);
  31.  
  32. curl_setopt($ch, CURLOPT_POST, TRUE);
  33. curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields) );
  34. ob_start(); // prevent any output
  35. return curl_exec ($ch); // execute the curl command
  36. ob_end_clean(); // stop preventing output
  37. curl_close ($ch);
  38. }
  39.  
  40. curl_login('http://xxxxxxxxxx/index.jsp?oper=login','');
  41. echo curl_grab_page('http://xxxxxxxxx/oferta.jsp');

Czy jezeli sie nie myle i strona logowanie trzyma w sesji to jest jakas szansa na pobranie danych ktore mnie interesuja?