function post($url = null, $params = null){
// Инициализация соединения
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // Страница для обработки
curl_setopt($ch, CURLOPT_HEADER, 1); // Получение заголовка
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращает веб-страницу
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
if(isset($params['params'])){
curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
}
if(isset($params['headers'])){
curl_setopt($ch, CURLOPT_HTTPHEADER, $params['headers']);
}
$result = curl_exec($ch);
$cookies = implode(';', curl_getinfo($ch, CURLINFO_COOKIELIST));
// Разделение "Заголовка" от "Тела" страницы
$result = explode("\r\n\r\n", $result, 2);
// Закрытие соединения
curl_close($ch);
// Результат
return array('headers' => $result[0], 'cookies' => $cookies, 'content' => $result[1]);
}
function ref($params = null){
// Поиск ссылки в строке "Location:"
preg_match('/Location\: (.*)/', $params, $result);
// Удаление пробелов в начале и конце
$result = trim($result[1]);
// Результат
return $result;
}
function login($email = null, $pass = null){
// Начальная страница авторизации
$post_vk = post('https://oauth.vk.com/authorize?v=5.62&client_id=3280318&scope=friends,schools,email&display=page&response_type=code&redirect_uri='.urlencode('https://ulogin.ru/auth.php?name=vkontakte'));
// Вытаскиваем переменные (ip_h, lg_h, to) с главной страницы ($post_vk)
preg_match('/name=\"ip_h\" value=\"(.*?)\"/s', $post_vk['content'], $ip_h);
preg_match('/name=\"lg_h\" value=\"(.*?)\"/s', $post_vk['content'], $lg_h);
preg_match('/name="to" value="(.*?)\"/s', $post_vk['content'], $to_);
// Запрос на авторизацию
$post_login = post('https://login.vk.com/?act=login&soft=1', array(
'params' => 'ip_h='.$ip_h[1].'&lg_h='.$lg_h[1].'&_origin='.urlencode('https://oauth.vk.com').'&to='.$to_[1].'&expire=0&email='.$email.'&pass='.$pass,
'cookies' => $post_vk['cookies'])
);
echo $post_login['cookies'];
$post_hash = post(ref($post_login['headers']), array(
'cookies' => $post_login['cookies'])
);
//echo $post_hash['headers'];
preg_match('/Location\: (.*)/', $post_hash['headers'], $url_code);
$post_code = post(trim($url_code[1]), array(
'cookies' => $post_hash['cookies'])
);
echo $post_code['headers']// в заголовке должена быть ссылка на переход далее
}
login($mail, $pass);
если есть где попробывать можете протестировать понятней будет, где должна быть ссылка для редиректа отображается как будто авторизации вобще не было, т.е. толи куки не дошли то ли что, вот и не пойму