
28.10.2008, 14:05
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
В данном случае сайт не делает лишних проверок, поэтому перед авторизацией сессию ставить не нада, можно сразу слать данные. Вот рабочий вариант:
PHP код:
$url = "http://memori.ru/login/";
$ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
$ch = curl_init();
$post="login=megalol&passw=nvidia&go_logining=1&book=0&sf=&remember=1";
curl_setopt($ch, CURLOPT_URL, "http://memori.ru/login/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://memori.ru/");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($ch);
echo $result;
В ответ получаем заголовки:
Код:
HTTP/1.1 302 Found Via: 1.1 RAID-PROXY Connection: Keep-Alive Proxy-Connection: Keep-Alive Content-Length: 0 Expires: Thu, 19 Nov 1981 08:52:00 GMT Date: Tue, 28 Oct 2008 10:02:41 GMT location: http://memori.ru/megalol/ Content-Type: text/html Server: nginx/0.5.28 X-Powered-By: PHP/5.2.3 Set-Cookie: PHPSESSID=3b731188cdf0c2369bf738f67ff1ce40; path=/ Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: isp=540df7f83845146f0287ff6d2da77900; expires=Sat, 27-Dec-2008 10:02:41 GMT; path=/ Set-Cookie: isl=megalol; expires=Sat, 27-Dec-2008 10:02:41 GMT; path=/
Вырезаем строку PHPSESSID=3b731188cdf0c2369bf738f67ff1ce40
и ее используем для дальнейших запросов к серверу, передавая кукисами, чтобы он считал вас авторизованым под вашим логином.
=========================
Кстати, если параметр равен нулю, это не значит что его нет, при отправкее запроса передавайте ВСЕ параметры, имеющиеся в форме, в вашем не хватает параметра book.
Последний раз редактировалось prescott; 28.10.2008 в 14:22..
|
|
|