$user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' .
'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)';
$cookie = '';
$login = 'qazqaz';
$password = 'qazqaz';
$ch = curl_init();
// true т.к. мы будем отправлять post запрос:
curl_setopt($ch, CURLOPT_POST, true);
// чтобы сайт думал, что мы - браузер:
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// ответ сервера будем записывать в переменную
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// по редиректам будем переходить автоматически.
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, 'http://login.vk.com/?act=login');
//Формирование запроса таким образом, я счел более наглядным
$post = array(
'act' => 'login',
'q' => '',
'al_frame' => '1',
'expire' => '',
'captcha_sid' => '',
'captcha_key' => '',
'from_host' => 'vkontakte.ru',
'email' => $login,
'pass' => $password
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$answer = curl_exec($ch);
/* В $answer нам приходит javascript, который и устанавливает куки
с названием: remixsid Нам нужно cпарсить эти 60 символов,
идентификатора сессии. с помощью них vkontakte поймет,
что мы авторизировались.*/
$sid = substr($answer, strpos($answer, "setCookieEx('sid', '") + 20, 60);
$cookie = 'remixsid=' . $sid;
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
// укажем страницу, с которой мы получим данные для проверки
curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/id107073034');
$answer = curl_exec($ch);
preg_match('!id="profile_current_info">((.*?))</div>!si',$answer,$data);
//print_r($data);
$pars=iconv('cp1251','utf-8',$data[1]);
//echo $pars;
$p = file_get_contents('/home/megido/l.dat');
if($p != $pars)
$f = @fopen('/home/qazqaz/l.dat','w+');
fwrite($f,$pars);
fclose($f);
//echo $answer;
curl_close($ch);