Вопрос по скрипт ВК

Discussion in 'PHP' started by IgrikX, 13 Mar 2010.

  1. IgrikX

    IgrikX New Member

    Joined:
    13 Aug 2009
    Messages:
    114
    Likes Received:
    1
    Reputations:
    -3
    Написал функцию на php авторизации ВК. Потом написал функцию перехода на другую странцу.
    Первая функцию принимает параметры логин и пароль. Вторая поисковое слово. Почему при переходе во вторую функцию авторизация теряется? Вроде кукисы считываю.
    PHP:
    function vk_login($Email,$Password)
    {
    $ch curl_init();
    curl_setopt ($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,120);
    curl_setopt($ch,CURLOPT_TIMEOUT90);
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($ch,CURLOPT_ENCODING,'gzip,deflate');
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0");
    curl_setopt($chCURLOPT_COOKIEJAR'C:/WebServers/home/test1.ru/www/cookies.txt');
    curl_setopt($chCURLOPT_TIMEOUT30);
    //GET vkontakte.ru/login.php
    curl_setopt ($chCURLOPT_URL'http://vkontakte.ru/login.php');
    $body curl_exec($ch);
    //POST vkontakte.ru/login.php
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS"op=a_login_attempt");
    curl_setopt ($chCURLOPT_URL'http://vkontakte.ru/login.php');
    $body curl_exec($ch);
    //POST login.vk.com/
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS"act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email=".$Email."&pass=".$Password."&expire=");
    curl_setopt ($chCURLOPT_URL'http://login.vk.com/');
    $body curl_exec($ch); 
    curl_close($ch);  
    }

    //---- Функция поиска музыки Вконтакте
    function search_music($text)// параметр - поисковая фраза
    {
    $ch curl_init($ch);
    curl_setopt($chCURLOPT_COOKIEFILE'C:/WebServers/home/test1.ru/www/cookies.txt');
    // переходим на страницу поиска музыки и извлекаем hash и какие-то другие значения
    curl_setopt($chCURLOPT_URL'http://vkontakte.ru/gsearch.php?section=audio&q='.$text);
    $body curl_exec($ch);
    curl_close($ch); 
    preg_match_all("#aid:(\d+),oid:(\d+),hash:'(\w+)'}\);return false;\">#",$body,$arr);//регулярка извлекает параметры песни
    return $arr;
    }
     
  2. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Авторизация омг
    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;
        }

    }
    Зачем так путь указывать, пиши просто './cook'
     
    _________________________
    1 person likes this.