Mam taki kod php do logowania się na stronę:
<meta name="test" http-equiv="content-type" content="text/html; charset=utf-8"/> <?php $cookie_file = 'cookie.txt'; if($numer.$haslo) { $c = curl_init('http://www.heyahklub.pl/hk/portal/?sn=HEYAH.PORTAL'); curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($c, CURLOPT_URL, 'http://sso.era.pl/sso/authserver/server'); 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"); curl_setopt($c, CURLOPT_POST, 1); curl_setopt($c, CURLOPT_POSTFIELDS, 'request=login1&rid=TUMOSZEPOBRACKOD&sso-server=authserver&user=48'.$numer.'&password='.$haslo.'&x=25&y=6'); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_getinfo($c); $s = curl_exec($c); curl_close($c); } ?>
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:
http://sso.era.pl/sso/authserver/server POST /sso/authserver/server HTTP/1.1 Host: sso.era.pl User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: sso_credentials=tgt=B876C1CE728C5BB063434AE18CE8F5482DBC0F93D07C2F2EB37B87C96FF3 C930DCEA58D05AB4976D9D607735468744423E00067BF7B550D4806B4D76D18AAA044E87776385AB 1F94743FF9BA7D10D8203F88574D443DEBB0B88D70F417DC2D5497C078D6CDEB42F3E08E485DDD6F D9913C1A4D9B1DF34285A3456BF9B41947C291D7934078C3FE91788A2B48907F82BAC44594AB161F 71BBCE3820B350DBB42A73F21B5391EA6CA8F9CC8ABA2CBB1AA71D8518AAC7A493CDF9F4D9F0A236 75A43FB875ADCC6C6DE6EDC64BB68364C62C3A96079DFEEA7BA25B6E5BACA2DB110CF20C474A2640 D0EE325DC35457A3A3688B15EB9E37FBAD1699D58375409CBC49&uid=48NUMER&sso-server=authserver Content-Type: application/x-www-form-urlencoded Content-Length: 101 request=login1&rid=23BED078E493DA4D&sso-server=authserver&user=48NUMER&password=HASLO&x=23&y=8 HTTP/1.x 302 Moved Temporarily Date: Fri, 28 Nov 2008 17:32:41 GMT Server: Apache Expires: -1 Set-Cookie: sso_credentials=tgt=5B33C8B49B7E29B010E9BF55B8BFA0FC891292A887C6816BFB9E23B57871 7E3E7A3B6AC79A83F231319F2F0DCF20D4ABFBDDE509D3D4BA6B532DFB4D7F595B69A35B436A6E1F 508F8B3B580E40CB6066A5D262FAC80BC4B080838637EAB8AC5E9719AAD8ACBF1274E95EF9FCC66F 924AEEE83932ACAD148D756C8D64A728AF9A03B64C550FFD8B0725ADB02B65B711F04D6A5D11CEC4 6773476A7A35CFBB6C4A102D17AD76A91CB1B709F55A08194B8889B6BEF45528BEB257CAB757367F A9AEC9BD6B1E7006859981193BF322F4AF5E12ADE5E68C6A2BB1D1CE9EAD0C3FC6D4683C4183CCB6 7EF2C16BA9B94621036856CD31E4C8155CA70282B399103CDF14&uid=48NUMER&sso-server=authserver Cache-Control: no-store, no-cache, must-revalidate Keep-Alive: timeout=2, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=ISO-8859-2 Content-Language: pl
Proszę o pomoc...