Показать сообщение отдельно

  #9  
Старый 14.02.2010, 05:58
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


По умолчанию

Цитата:
Сообщение от mailbrush  
Моя функция авторизации:
PHP код:
function Request($url$postfields false$cookie false)
{
    
$ch curl_init($url);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_HEADER1);
    if (
$postfields)
    {
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_POSTFIELDS$postfields);
    }
    if (
$cookie)
    {
        
curl_setopt($chCURLOPT_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($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6');
    
curl_setopt($chCURLOPT_REFERER'http://vkontakte.ru/index.php');
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_TIMEOUT10);
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_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;
    }


 
Ответить с цитированием