Witam
Mam taki kod php do logowania się na stronę:
  1. <meta name="test" http-equiv="content-type" content="text/html; charset=utf-8"/>
  2. <?php
  3. $cookie_file = 'cookie.txt';
  4. echo 'Start...';
  5.  
  6. if($numer.$haslo)
  7. {
  8. $c = curl_init('http://www.heyahklub.pl/hk/portal/?sn=HEYAH.PORTAL');
  9. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
  10. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
  11. curl_setopt($c, CURLOPT_URL, 'http://sso.era.pl/sso/authserver/server');
  12. curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12;MEGAUPLOAD 1.0");
  13. curl_setopt($c, CURLOPT_POST, 1);
  14. curl_setopt($c, CURLOPT_POSTFIELDS,
  15. 'request=login1&rid=TUMOSZEPOBRACKOD&sso-server=authserver&user=48'.$numer.'&password='.$haslo.'&x=25&y=6');
  16. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  17. curl_getinfo($c);
  18. $s = curl_exec($c);
  19. curl_close($c);
  20.  
  21. echo $s; //wyświetla stronę
  22.  
  23. }
  24.  
  25. echo 'Koniec';
  26.  
  27. unlink ('cookie.txt'); //kasuje plik z cookie
  28.  
  29. ?>

I niestety trzeba pobrać Referer z poprzedniej strony (po to, aby przesłać zmienną rid do późniejszego post'owania celem zalogowania). Tylko jak to zrobić? Próbowałem kodem: curl_setopt($c, CURLOPT_REFERER, $referer); jednak on chyba przypisuje referer, a nie czyta później (np. za pomocą echo $referer). Więc trzeba wyświetlić referer i wyciąć rid, który właśnie znajduje się w nim... Sniffując LIVE HTTP headers otrzymuję taki kod:
  1. http://sso.era.pl/sso/authserver/server
  2.  
  3. POST /sso/authserver/server HTTP/1.1
  4. Host: sso.era.pl
  5. User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
  6. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  7. Accept-Language: pl,en-us;q=0.7,en;q=0.3
  8. Accept-Encoding: gzip,deflate
  9. Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
  10. Keep-Alive: 300
  11. Connection: keep-alive
  12. Cookie: sso_credentials=tgt=B876C1CE728C5BB063434AE18CE8F5482DBC0F93D07C2F2EB37B87C96FF3
  13. C930DCEA58D05AB4976D9D607735468744423E00067BF7B550D4806B4D76D18AAA044E87776385AB
  14. 1F94743FF9BA7D10D8203F88574D443DEBB0B88D70F417DC2D5497C078D6CDEB42F3E08E485DDD6F
  15. D9913C1A4D9B1DF34285A3456BF9B41947C291D7934078C3FE91788A2B48907F82BAC44594AB161F
  16. 71BBCE3820B350DBB42A73F21B5391EA6CA8F9CC8ABA2CBB1AA71D8518AAC7A493CDF9F4D9F0A236
  17. 75A43FB875ADCC6C6DE6EDC64BB68364C62C3A96079DFEEA7BA25B6E5BACA2DB110CF20C474A2640
  18. D0EE325DC35457A3A3688B15EB9E37FBAD1699D58375409CBC49&uid=48NUMER&sso-server=authserver
  19. Content-Type: application/x-www-form-urlencoded
  20. Content-Length: 101
  21. request=login1&rid=23BED078E493DA4D&sso-server=authserver&user=48NUMER&password=HASLO&x=23&y=8
  22. HTTP/1.x 302 Moved Temporarily
  23. Date: Fri, 28 Nov 2008 17:32:41 GMT
  24. Server: Apache
  25. Expires: -1
  26. Set-Cookie: sso_credentials=tgt=5B33C8B49B7E29B010E9BF55B8BFA0FC891292A887C6816BFB9E23B57871
  27. 7E3E7A3B6AC79A83F231319F2F0DCF20D4ABFBDDE509D3D4BA6B532DFB4D7F595B69A35B436A6E1F
  28. 508F8B3B580E40CB6066A5D262FAC80BC4B080838637EAB8AC5E9719AAD8ACBF1274E95EF9FCC66F
  29. 924AEEE83932ACAD148D756C8D64A728AF9A03B64C550FFD8B0725ADB02B65B711F04D6A5D11CEC4
  30. 6773476A7A35CFBB6C4A102D17AD76A91CB1B709F55A08194B8889B6BEF45528BEB257CAB757367F
  31. A9AEC9BD6B1E7006859981193BF322F4AF5E12ADE5E68C6A2BB1D1CE9EAD0C3FC6D4683C4183CCB6
  32. 7EF2C16BA9B94621036856CD31E4C8155CA70282B399103CDF14&uid=48NUMER&sso-server=authserver
  33. Cache-Control: no-store, no-cache, must-revalidate
  34. Keep-Alive: timeout=2, max=100
  35. Connection: Keep-Alive
  36. Transfer-Encoding: chunked
  37. Content-Type: text/html; charset=ISO-8859-2
  38. Content-Language: pl

Proszę o pomoc...