Как авторизоваться на my.mail.ru при помощи curl?
Новая тема Написать ответ
# Вт Окт 09, 2012 4:53 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Всем привет!
Кто знает php, пожалуйста подскажите, как при помощи curl авторизоваться на my.mail.ru (Мой Мир)?

Вот такой код:
Код:
header('Content-type: text/html; charset=utf-8');
setlocale(LC_ALL, 'ru_RU.utf8');
date_default_timezone_set('Europe/Moscow');
 
// это нужно заполнить
$login = 'логин';
$password = 'пасс';
 
$user_agent = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1';
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
 
curl_setopt($ch, CURLOPT_POST, false);
 
curl_setopt($ch, CURLOPT_URL, "http://swa.mail.ru/cgi-bin/auth?Password=$password&Login=$login");
 
curl_exec($ch);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
echo curl_setopt($ch, CURLOPT_URL, "http://m.mail.ru/cgi-bin/gosearch?q_read=2&q_folder=all");
 
$answer = curl_exec($ch);
 
$matches = array();
preg_match_all('/<span>([^<]+)<\/span>/', $answer, $matches);
 
foreach ($matches[1] as $value) {
    echo $value . '<br />';
}



echo file_get_contents("http://my.mail.ru/");

echo "<br><br>FINISH";


- отлично авторизуется на самом Mail.ru, а ниже вывожу страницу Мой Мир (my.mail.ru) - там неавторизован.

Или может есть более простой путь на Мой Мир авторизоваться.

Заранее большое спасибо!
# Вт Окт 09, 2012 7:22 pmCodd Зарег.: 13.01.2011 ; Сообщ.: 186Ответить с цитатой
Код:
echo file_get_contents("http://my.mail.ru/");


Это не особо похоже на curl Smile

Код:
<?php

require 'curl.php';

$curl = new Curl();

# user@mail.ru
$domain = 'mail.ru';
$login = 'user;
$password = 'pass';

# Авторизуемся
$curl
    ->url('https://auth.mail.ru/cgi-bin/auth')
    ->postarray(array('Domain' => $domain, 'Login' => $login, 'Password' => $password))
    ->go('post');

# Устанавливаем куки
foreach($curl->info['cookies'] as $key => $val)
    $curl->cookies .= "$key=$val";

# Выводим страницу
echo $curl->url('http://my.mail.ru/')->go()->res;



curl.php
# Вт Окт 09, 2012 9:10 pmYabuti Зарег.: 28.11.2008 ; Сообщ.: 16263Ответить с цитатой
Codd, огромное спасибо, работает супер! :thup: Yahoo!
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ
 
Любое использование материалов, размещенных на ArmadaBoard.com, без разрешения владельцев ArmadaBoard.com запрещено.