[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация
Dangetsu
Всем здарова! В общем появилась необходимость авторизоваться в вк через curl, копал гугл, нашел такой вот код:


ini_set('error_reporting', E_ALL);
ini_set ('display_errors', 1);

$user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' . 'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)';

$login = 'email';
$password = 'pass';
function curl_gets_exec($ch, $redirects = 0, $curlopt_returntransfer = true, $curlopt_maxredirs = 10, $curlopt_header = false) {

curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$header=substr($data,0,curl_getinfo($ch,CURLINFO_HEADER_SIZE));
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$exceeded_max_redirects = $curlopt_maxredirs > $redirects;
$exist_more_redirects = false;
if ($http_code == 301 || $http_code == 302) {
if ($exceeded_max_redirects) {
list($header) = explode("\r\n\r\n", $data, 2);
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
$url = trim(array_pop($matches));
$url_parsed = parse_url($url);
if (isset($url_parsed)) {
curl_setopt($ch, CURLOPT_URL, $url);
$redirects++;
return curl_gets_exec($ch, $redirects, $curlopt_returntransfer, $curlopt_maxredirs, $curlopt_header);
}
}

else {
$exist_more_redirects = true;
}
}

if ($data !== false) {
if (!$curlopt_header)
list(,$data) = explode("\r\n\r\n", $data, 2);
if ($exist_more_redirects) return false;
if ($curlopt_returntransfer) {
return $data;
}
else {
echo $data;
if (curl_errno($ch) === 0) return true;
else return false;
}
}

else {
return false;
}
}


$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch,CURLOPT_REFERER,'http://m.vk.com/login?fast=1&hash=&s=0&to=');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/Cookies.txt');//сохраняем куки
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/Cookies.txt');//грузим куки
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_URL, 'https://login.vk.com/?act=login&from_host=m.vk.com&from_protocol=http&a mp;a mp;a mp;ip_h=&pda=1');
$answer = curl_gets_exec($ch);
$post = array(
'email' => $login,
'pass' => $password
);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$answer = curl_gets_exec($ch);

$link="http://m.vk.com/mail";
curl_setopt($ch, CURLOPT_URL, $link);
$answer = curl_gets_exec($ch);//получаем страницу с сообщениями
echo htmlspecialchars(iconv('utf-8', 'windows-1251', $answer));//выводим содержимое


Авторизация проходит успешно, и куки записываются в файл. Однако, дальше авторизации дело не идет, я пытаюсь зайти на страницу с сообщениями но ничегошеньки не получаю. Если же поставить на вывод главную страницу то я увижу код авторизации. Такое ощущение как будто куки не считываются с файла. Тестировал в денвере и на хостинге.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.