|
 1.8 Кб |
|
| Здравствуйте. Во первых, понимаю, что вопрос трудоемкий и очень маловероятно, что кто то сможет мне помочь, но все таки надежда умирает последней ). Так вот , нужно автозалогинится на www.discogs.com, я написал скрипт, который должен бы авторизовать, свормировал заголовки вточности как те что отправляються в браузере человеком, но что то не так. Если у кого есть возможность, помогите. Спасибо. (скрипты в атаче). | |
|
|
|
|
автор: 23123 (15.05.2009 в 20:57) |
|
|
для: Саша
(15.05.2009 в 20:44)
| | как минимум, http-заголовки не нуждаются в обработке urlencode() | |
|
|
|
|
|
|
|
для: 23123
(15.05.2009 в 20:57)
| | но там urldecode | |
|
|
|
|
автор: 32312 (15.05.2009 в 23:42) |
|
|
для: Саша
(15.05.2009 в 21:39)
| | эээ...Тогда вообще логики не вижу. | |
|
|
|
|
|
|
|
для: 32312
(15.05.2009 в 23:42)
| | Я когда грабил ТВ-программу столкнулся с ситуацией, что меня отфутболивало по причине незаполненности поля referer.
Може и здесь такое?
fwrite($sock, "POST /?chp=tv HTTP/1.1\r\n");
fwrite($sock, "Referer: http://www.s-tv.ru/?chp=tv\r\n");
fwrite($sock, "Host: www.s-tv.ru\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");
|
| |
|
|
|
|
|
|
|
для: Хулиган
(16.05.2009 в 02:53)
| | скорее всего куки... сейчас часто в куках хранят номер сессии | |
|
|
|
|
|
|
|
для: Саша
(15.05.2009 в 20:44)
| | юзайте curl и будет вам счастье. делает за 5 минут на коленке. | |
|
|
|
|
|
|
|
для: devzorg
(18.05.2009 в 01:20)
| | А какая разница, сиурл или сам передаю хедеры? | |
|
|
|
|
|
|
|
для: Саша
(24.05.2009 в 13:39)
| |
<?php
$login='VITtek';
$pass='******';
$ch = curl_init("http://www.discogs.com/users/login");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec ($ch);
curl_close($ch);
preg_match_all ('|<input id="login_challenge" name="login_challenge" type="hidden" value="(.*)" />|isU',$output,$content_com_today_1);
preg_match_all ('|<input id="login_response" name="login_response" type="hidden" value="(.*)" />|isU',$output,$content_com_today_2);
preg_match_all ('|Set-Cookie: (.*);|isU',$output,$content_com_today_3);
$res = md5($content_com_today_1[1][0] + md5($pass));
$ch = curl_init("http://www.discogs.com/users/login");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login_challenge=".$content_com_today_1[1][0]."&login_response=".$res."&username=".$login."&password=&Action.Login=Log+In");
curl_setopt ($ch, CURLOPT_COOKIE, $content_com_today_3[1][1]);
$output = curl_exec ($ch);
curl_close($ch);
print_r ($output);
?>
|
Далее там надо в джаваскриптах копаться. | |
|
|
|
|
|
|
|
для: VITtek
(24.05.2009 в 16:44)
| | Два вопроса. Почему только curl_setopt ($ch, CURLOPT_COOKIE, $content_com_today_3[1][1]); ? А $content_com_today_3[1][0] ?. Второй, почему $res = md5($content_com_today_1[1][0] + md5($pass)); а не $res = md5($content_com_today_1[1][0] . md5($pass)); ? Вообщем я переделал вот что получилось
<?php
$login='hava';
$pass='legflegf';
$ch = curl_init("http://www.discogs.com/users/login");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec ($ch);
curl_close($ch);
preg_match_all ('|<input id="login_challenge" name="login_challenge" type="hidden" value="(.*)" />|isU',$output,$content_com_today_1);
preg_match_all ('|<input id="login_response" name="login_response" type="hidden" value="(.*)" />|isU',$output,$content_com_today_2);
preg_match_all ('|Set-Cookie: (.*);|isU',$output,$content_com_today_3);
$res = md5($content_com_today_1[1][0] . md5($pass));
$cookie = implode(";",$content_com_today_3[1]);
$ch = curl_init("http://www.discogs.com/users/login");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "login_challenge=".$content_com_today_1[1][0]."&login_response=".$res."&username=".$login."&password=&Action.Login=Log+In");
curl_setopt ($ch, CURLOPT_COOKIE, $cookie);
$output = curl_exec ($ch);
curl_close($ch);
print_r ($output);
?>
|
| |
|
|
|
|
|
|
|
для: Саша
(24.05.2009 в 17:40)
| | Вообщем, рабочая версия , может кому то пригодится. Спасибо VITtek, ваш код помог, буду его использовать.
<?php
$login='hava';
$pass='legflegf';
$ch = curl_init("http://www.discogs.com/users/login");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec ($ch);
curl_close($ch);
preg_match_all ('|<input id="login_challenge" name="login_challenge" type="hidden" value="(.*)" />|isU',$output,$content_com_today_1);
preg_match_all ('|<input id="login_response" name="login_response" type="hidden" value="(.*)" />|isU',$output,$content_com_today_2);
preg_match_all ('|Set-Cookie:(.*)\n|isU',$output,$content_com_today_3);
$res = md5($content_com_today_1[1][0] . md5($pass));
$content_com_today_3[1][0] = trim($content_com_today_3[1][0]);
$content_com_today_3[1][1] = trim($content_com_today_3[1][1]);
$cookie = implode(";",$content_com_today_3[1]);
$ch = curl_init("http://www.discogs.com/users/login");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10');
curl_setopt($ch, CURLOPT_POSTFIELDS, "login_challenge=".$content_com_today_1[1][0]."&login_response=".$res."&username=".$login."&password=&Action.Login=Log+In");
curl_setopt ($ch, CURLOPT_COOKIE, $cookie);
$output = curl_exec ($ch);
curl_close($ch);
print_r ($output);
?>
|
| |
|
|
|
|
|
|
|
для: Саша
(24.05.2009 в 19:08)
| | Да конечно там точка нужна (перепутал с джавой). Главное ты понял как там закручено было с пассом.
))) | |
|
|
|
|
|
|
|
для: VITtek
(24.05.2009 в 22:49)
| | нет, с пасвордом я то знал, в моем скрипте с пасвордом проблем не было, проблема була что кукисы не подставлял, потому меня и отшибало, + еще надо было передать агента. Но ты мне действительно помог. Спасибо тебе огромное, напиши мне на имейл, paska72@ukr.net, я тебе хочу в приват написать | |
|
|
|
|