Mam taki oto kod z manuala (z komentarza):
// $url = page to POST data // $ref_url = tell the server which page you came from (spoofing) // $login = true will make a clean cookie-file. // $proxy = proxy data // $proxystatus = do you use a proxy ? true/false function curl_grab_page($url,$ref_url,$data,$login,$proxy,$proxystatus){ if($login == 'true') { } $ch = curl_init(); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 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_TIMEOUT, 40); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); if ($proxystatus == 'true') { curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_setopt($ch, CURLOPT_PROXY, $proxy); } curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $ref_url); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); return curl_exec ($ch); // execute the curl command curl_close ($ch); } echo curl_grab_page("http://localhost/login/", "http://localhost/login/", "login=LOGIN&pass=PASS", "true", "null", "false");
I faktycznie, jestem zalogowany do serwisu. Ale przy próbie otworzenia innej strony nie jestem już zalogowany. Co więcej, dane do pliku cookie.txt nie są zapisywane, gdy zmieniłem ścieżkę na DOCUMENT_ROOT to dane (ciasteczka) zostały zapisane, ale nadal nie jestem zalogowany po wczytaniu innej strony.
Czy coś takiego w ogóle jest możliwe? Przetestowałem już wiele skryptów, ale jakoś żaden nie pozwala na zalogowanie i pozostanie zalogowanym.