Логин вконтакте с помощью curl

nokto
На сайте с 04.06.2009
Offline
17
1596

Всем привет.

Нужно залогинится вконтакте с помощью curl. Написал скрипт, не работает возращает ошибку 400

Помогите плс

$email = "e-mail";

$pass = "pass";
$post = "act=login&q=1&al_frame=1&expire=&captcha_sid=&captcha_key=&from_host=vkontakte.ru&email=" . urlencode($email) . "&pass=".urlencode($pass);


$headers["Host"]="login.vk.com";
$headers["Accept"]="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$headers["Accept-Language"]="ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3";
$headers["Accept-Encoding"]="gzip,deflate";
$headers["Accept-Charset"]="windows-1251,utf-8;q=0.7,*;q=0.7";
$headers["Keep-Alive"]="115";
$headers["Connection"]="keep-alive";
$headers["Content-Type"]="application/x-www-form-urlencoded";
$headers["Content-Length"]="126";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://login.vk.com/?act=login");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/al_index.php?act=auth_frame');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
$html = curl_exec($ch);

preg_match('/Location: (.*)/m', $html, $m);
$location = $m[1];

curl_setopt($ch, CURLOPT_URL, $location);
curl_setopt($ch, CURLOPT_COOKIE, "remixchk=5");
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/al_index.php?act=auth_frame');
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$html = curl_exec($ch);

curl_close($ch);


$fh = fopen ('test_file.txt', 'w');
fwrite($fh, $html);
fclose($fh);
Z
На сайте с 18.08.2010
Offline
56
#1

По-любому придется разбираться самому. Что такое сниффер знаешь?

:crazy:
D
На сайте с 14.01.2007
Offline
153
#2

зачем сниффер, если есть HTTP_LIVE_HEADERS?

ДП
На сайте с 23.11.2009
Offline
203
#3

Сниффер видимо чтобы сравнить что же все-таки отправляет скрипт с тем, что отправляет барузер.

Ну и про CURLOPT_VERBOSE не забываем - может помочь при отладке.

Дикий пионер добавил 20.02.2011 в 23:04

Кстати, у вас заголовки неправильно прописаны, для курла надо так

$headers[]="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

т.е. сами строки сразу писать с названием заголовка.

nokto
На сайте с 04.06.2009
Offline
17
#4

Всем спасибо за ответы, разобрался уже.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий