
14.02.2010, 05:58
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
Сообщение от mailbrush
Моя функция авторизации:
PHP код:
function Request($url, $postfields = false, $cookie = false)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
if ($postfields)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
}
if ($cookie)
{
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
}
$res = curl_exec($ch);
return $res;
}
function LogIn($email, $password)
{
Request('http://vkontakte.ru/login.php', 'op=a_login_attempt');
$vars = Request('http://login.vk.com/?act=login', 'email=' . $email . '&pass=' . $password .
'&expire=&vk=');
preg_match_all("#<input type='hidden' name='(.*)' id='.*' value='(.*)' />#", $vars, $m);
foreach ($m[1] as $key => $value)
{
@$postfields .= $value . '=' . $m[2][$key] . '&';
}
$h = Request('http://vkontakte.ru/login.php', $postfields);
preg_match('#remixsid=[a-z0-9]+#', $h, $cookie);
$page = Request('http://vkontakte.ru/', false, $cookie[0]);
preg_match('#Location: /id(\d+)#', $page, $id);
return array('sid' => $cookie[0], 'id' => $id[1]);
}
аж 2 курла.
PHP код:
function vk_login($email, $pass) {
$ch = curl_init('http://login.vk.com/?act=login');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6');
curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/index.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email='.urlencode($email).'&pass='.urlencode($pass).'&expire=&vk=');
$errno = curl_errno($ch);
$error = curl_error($ch);
$res = curl_exec($ch);
if($errno > 0) {
return $errno.':'.$error;
} else {
if(preg_match('#id=\'s\' value=\'(.*)\'#', $res, $m))
return $m[1];
else return false;
}
}
|
|
|