Witam,
Mam taki kod do logowania do portalu nasza-klasa.pl:

  1. $login = 'xxxx';
  2. $pass = 'xxxx';
  3.  
  4. $cookie = 'cookie';
  5. file_put_contents($cookie, '');
  6.  
  7. $link=curl_init();
  8. curl_setopt($link,CURLOPT_COOKIEJAR,$cookie);
  9. curl_setopt($link,CURLOPT_COOKIEFILE,$cookie);
  10. curl_setopt($link,CURLOPT_HEADER, 0);
  11. curl_setopt($link,CURLOPT_URL,'http://nasza-klasa.pl/login');
  12. curl_setopt($link,CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 .NET CLR 3.5.30729');
  13. curl_setopt($link,CURLOPT_POSTFIELDS,'login='.$login.'&password='.$pass.'&remember=1');
  14. curl_setopt($link,CURLOPT_RETURNTRANSFER, 1);
  15. $odp1 = curl_exec($link);
  16.  
  17. $ch=curl_init();
  18. curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);
  19. curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie);
  20. curl_setopt($ch,CURLOPT_HEADER, 0);
  21. curl_setopt($ch,CURLOPT_URL,'http://nasza-klasa.pl/profile');
  22. curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 .NET CLR 3.5.30729');
  23. curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
  24. $odp2 = curl_exec($ch);


Problemy są następujące:
- dopóki hasło jest wpisane niepoprawne skrypt nie zaloguje się (w $odp2 jest strona z błędem "niepoprawne dane" z n-k)
- jak już raz wpiszę dobre hasło i skrypt się zaloguje, to później loguje się już cały czas biggrin.gif (nawet po zmianie hasła)
Mam wrażenie, że coś tu jest gdzieś "cache'owane", tylko co i gdzie? w pliku cookie nic się nie zapisuje, to też jest dziwne, bo w końcu udało się zalogować... Z przeglądarki nie mam żadnych ciasteczek, bo specjalnie je zablokowałem dla naszej klasy oraz localhosta...

---- Rozwiązanie ----

Super... do ciasteczka musi być podana bezwzględna ścieżka, czyli

  1. $cookie = dirname(__FILE__) . '/cookie';


Fajnie, że ktoś o tym w manualu napisał: http://php.net.pl/manual/en/function.curl-setopt.php sciana.gif