Добрый день уважаемые! Перестал работать скрипт авторизации в контакте (выдает неправильное имя или пароль), видимо изменился способ авторизации. Прошу помочь указать на ошибки... PHP: <?php class Vkontakte{ public $cookies; //Конструктор класса //Для начала работы с контактом необходимо авторизоваться function __construct($login,$pass){ //Проверяем наличие установленной библиотеки курл if(!function_exists('curl_init')){ die("Для работы необходимо установить lib_curl"); } //Устанавливаем язык интерфейса $remixlang='0'; //Отправляем логин и пароль $url = 'http://login.vk.com/?act=login'; $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_USERAGENT,"Opera/9.20 (Windows NT 5.1; U; ru)"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "email=".$login."&pass=".$pass."&expire=&vk="); curl_setopt($ch, CURLOPT_REFERER, "http://vkontakte.com/index.php"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); ////////////////////////////////////////// //Получаем необходимый результат $result = curl_exec($ch); $str = new MyStr(); //Вырезаем кукис $cookies = $str->StGetCookiesFromHeader($result,";"); //?act=login после получения логина и пароля отдает страницу с формой, //которая содержит сессию в скрытом поле, и редиректит на login.php. Он устанавливает //Куку remixsid. Вырежем куку $pattern = "#name='s'.*value='(.*)'#U"; preg_match($pattern,$result,$arr); $remixsid = @$arr[1]; //И таскать будем все куки в переменной cookies $this->cookies .=$cookies."remixsid=".$remixsid.";remixlang=".$remixlang; } function CheckAuth(){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://vkontakte.ru/profile.php"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE,$this->cookies); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT,"Opera/9.20 (Windows NT 5.1; U; ru)"); $result = curl_exec($ch); if(substr_count($result,"Моя Страница")>0){ return $result; }else{ return $result; } } function ViewGroupPage($url){ global $cookies; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE,$this->cookies); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); $patern = "#Обсуждения\: <span>\((.*)\)<\/span>#i"; if(preg_match($patern,$result,$arr)){ echo "В этой группе <b>".$arr[1]."</b> тем обсуждений<br>"; }else{ echo "В данной группе нет обсуждений, либо вы не можете их просматривать"; die(); } } function ParseDialogs($url,$msg_count,$offset = "",$timeout=0){ //echo $url; //echo $cookies; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE,$this->cookies); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); $pattern_topic_title = '#id="topic_title">(.*)<\/a>#U'; preg_match($pattern_topic_title,$result,$arr_topic_title); $out['topic_title'] = $arr_topic_title[1]; $patern = '#<a href="topic-.*?offset=(.*)" onclick="return getPage\((.*)\)">»<\/a>#i'; preg_match($patern,$result,$arr); //echo "Всего сообщений <b>".$arr[2]."</b><br>"; $last_page = $offset/20; for($i=0;$i<=$last_page;$i++){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url."?offset=".$i*20); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE,$this->cookies); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); $patern_post = '#<div class="postMessage" id=".*" style=".*">(.*)<\/div>#U'; preg_match_all($patern_post,$result,$arr_post); $patern_ts = '#<span class="postAuthor"><a href="(.*)">(.*)<\/a><\/span>#i'; preg_match_all($patern_ts,$result,$arr_ts); $patern_image_url = '#<a href="id[0-9]+"> <img src="(.*)" alt=""\/> </a>#i'; $patern_timestamp = '#<span class="timestamp">(.*)<\/span>#i'; preg_match_all($patern_timestamp,$result,$arr_timestamp); preg_match_all($patern_image_url,$result,$arr_image_url); //print_r($arr[1]); $out['timestamp'][$i] = $arr_timestamp[1]; $out['posts'][$i] = $arr_post[1]; $out['author_nickname'][$i] = $arr_ts[2]; $out['author_id'][$i] = $arr_ts[1]; $out['image_url'][$i] = $arr_image_url[1]; if($timeout){ sleep($timeout); } } return $out; /*else{ }*/ } function VkSendPostFields($url,$post_fields,$refer = 'http://vkontakte.com/index.php'){ $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_USERAGENT,"Opera/9.20 (Windows NT 5.1; U; ru)"); curl_setopt($ch, CURLOPT_COOKIE,$this->cookies); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_setopt($ch, CURLOPT_REFERER, $refer); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); $result = curl_exec($ch); return $result; } function GetThemes($url,$themes_count){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIE,$this->cookies); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result = curl_exec($ch); $pattern = '#<a href=".*\/board([0-9]*)">(.*)<\/a>#U'; preg_match($pattern,$result,$arr); $board_link = 'http://vkontakte.ru/board'.$arr[1]; $group_id = $arr[1]; //$themes_count = intval($arr[2]); $loop_count = floatval($themes_count/50); if($loop_count%50>0){ $loop_count= intval($loop_count)+1; } for($i=0;$i<$loop_count;$i++){ $offset = $i*50; $post_fields ='offset='.$offset.'&order=0'; $url = 'http://vkontakte.ru/board.php?act=a_get_topics_page&gid='.$group_id; $result = $this->VkSendPostFields($url,$post_fields); //<h3 class=\"topicTitle\"><a href=\"topic-1622_11811924\">Nokia N76<\/a> $pattern = '#<h3.*><a href=[\\\]"(.*)[\\\]">(.*)<[\\\]\/h3>#U'; preg_match_all($pattern,$result,$arr); $out[] = $arr[1]; } for($i=0;$i<count($out);$i++){ for($a=0;$a<count($out[$i]);$a++){ $newout[]=$out[$i][$a]; } } return $newout; } } ?>