Чего-то перестала у меня работать пожизненная авторизация вконтакте.. Куки постоянно пишутся заново, а не читаются просто.. А-А-А-А-А Сам естественно уже много чего перепробовал...
Вроде всё нормально...вот вечный онлайн (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 */ ?>
На вплеере стоит скрипт 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).'§ion=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
изис, тут /thread158865.html какие то скрипты для постоянного онлайна вконтакте. может нароешь чего для себя.
Isis Банально - а логин/пароль то правильный? Приведенный код у меня успешно авторизуется и даже что-то ищет. Плюс проверьте права на файл куков