Авторизация вконтакте

Discussion in 'PHP' started by banned, 16 Dec 2009.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Чего-то перестала у меня работать пожизненная авторизация вконтакте..
    Куки постоянно пишутся заново, а не читаются просто..
    А-А-А-А-А
    Сам естественно уже много чего перепробовал...
     
  2. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Вроде всё нормально...вот вечный онлайн (1 раз авторизировается и работает через cookie (см. лог))

    PHP:
    <?php
    set_time_limit
    (0);
    //-----------------//
    $email = '';                  // E-mail 
    $pass = '';                  // Пароль
    $log = '1';                 // 1 - Если нужно писать log-файл
    //-----------------//
     
       
    function post($url,$post,$refer)
        {
           
    $ch = curl_init($url);
           
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
           
    curl_setopt($ch, CURLOPT_POST, 1);
           
    curl_setopt($ch, CURLOPT_HEADER, 1);
           
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
           
    curl_setopt($ch, CURLOPT_REFERER, $refer);
           
    curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
           
    curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
           
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
           
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           
    $result  = curl_exec($ch);
           return 
    $result;
        }
     
      
    $result = post('http://vkontakte.ru/',null,'http://vkontakte.ru/');
     
      
    /* Если куки "умерли", то авторизовываемся... */
      
    if (preg_match('#l">E(.*?)<#i',$result,$avtoriz))
       {
          
    $result = post('http://vkontakte.ru/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$email.'&pass='.$pass,'http://vkontakte.ru/login.php');
     
         
    /* Пишем об этом */
            
    if ($log == "1")
         {
           
    $fh = fopen("log.txt", "a+");
            
    $success - fwrite($fh, "Авторизация [".date("H:i")."]\r\n");
            
    fclose($fh);
         }
     
        }
        else
        {
              if (
    $log == "1")
          {
                
    /* ...иначе пишем, что авторизация не потребовалась */
            
    $fh = fopen("log.txt", "a+");
            
    $success - fwrite($fh, "Работа через cookie [".date("H:i")."]\r\n");
            
    fclose($fh);
           }
         }
     
     
    /* geforse.name */
    ?>
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    На вплеере стоит скрипт
    PHP:
    function goLogin($url, $post, $vk)
        {
            global 
    $emailvk;

            if(
    $ch        = curl_init($url))
            {
                
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
                
    curl_setopt($ch, CURLOPT_POST, 1);
                
    curl_setopt($ch, CURLOPT_HEADER, 1);
                
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                
    curl_setopt($ch, CURLOPT_REFERER, 'http://login.vk.com');
                if(
    $vk > 0)    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/c/'.$emailvk);
                
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/c/'.$emailvk);
                
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                
    $content    = curl_exec($ch);
                
    $content    = mb_convert_encoding($content, 'utf-8', 'windows-1251');
                return array(
    $content);
            }
            else
            {
                return array(
    'notconnect');
            }
        }

    function 
    searchContent($q, $page)
        {
            
    $operation    =  $size    = null;
            
    $a            = goLogin('http://vkontakte.ru/gsearch.php', 'q='.urlencode($q).'&section=audio&offset='.$page, 0);
            
    $result        = $a[0];
            
    preg_match_all('#<img class="playimg" onclick="return operate\((.*?)\).*?id="#', $result, $operation);
            
    preg_match_all('#<div class="duration">(.*?)</div>#', $result, $duration);
            return array(
    $result, $operation, $size);
        }

    $pagek        = (isset($page) && $page > 0)    ?    (($page * 100) - 100)    :    '0';
            
    $pages        = '';
            
    $getArray    = searchContent($q, $pagek);

            if(
    preg_match('#location.href=\'http:\/\/vkontakte.ru\/login.php\?op=logout\'#i', $getArray[0], $lol))
            {
                
    $a        = goLogin('http://vkontakte.ru/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$emailvk.'&pass='.$passvk, 1);
                
    $getArray = searchContent($q, $pagek);
            }

            if(
    preg_match('#location.href=\'http:\/\/vkontakte.ru\/login.php\?op=logout\'#i', $getArray[0], $lol))
            {
                
    define('ERR',true);
                
    $result    = 'Что-то не так, попробуйте обновить страницу';
            }
    ?>
    Ну короче всегда пытается вывести $result = 'Что-то не так, попробуйте обновить страницу'; ну и естественно перезаписывает куки...
    Не ясно почему он со старыми не может залогиниться...

    НЕ ПОЙМУ!111111
     
  4. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,362
    Likes Received:
    1,041
    Reputations:
    356
    изис, тут /thread158865.html какие то скрипты для постоянного онлайна вконтакте. может нароешь чего для себя.
     
    _________________________
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Там тоже самое
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Isis Банально - а логин/пароль то правильный? Приведенный код у меня успешно авторизуется и даже что-то ищет. Плюс проверьте права на файл куков
     
    _________________________
    #6 Gifts, 16 Dec 2009
    Last edited: 16 Dec 2009
  7. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Весь список логинов паролей правильный, проверял вручную