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:
function curl_login($url,$data){
$fp = fopen("cookie.txt", "w"); $login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($login, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($login, CURLOPT_USERPWD, 'xxxxx:xxxxxx');
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, TRUE);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
return curl_exec ($login); // execute the curl command
curl_close ($login);
}
function curl_grab_page($site){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_URL, $site);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields) );
return curl_exec ($ch); // execute the curl command
curl_close ($ch);
}
curl_login('http://xxxxxxxxxx/index.jsp?oper=login','');
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?