Так как писатель я не очень хороший, буду писать кратко, и по сути.
Для работы с cURL, мной был разработан класс GCurl облегчающий работу с ним в разы. Ну, мне с ним работать значительно легче, чем на прямую с библиотекой.
Описывать саму библиотеку cURL я не стану, в интернете и так достаточно по ней информации.
К примеру можно глянуть здесь - http://www.php.ru/manual/ref.curl.html
Тогда, приступим к рассмотрению примера авторизации на сайте mail.ru.
Сам класс, смотрите во вложении.
Ниже, описан пример кода.
<?php
// --------------- Подключаем библиотеку ---------------
include_once './libs/gcurl.php';
//Указываем место, где будем сохранять кукиес. Не забываем о правах на запись, если Вы работаете под Linux
$cookie_file = dirname(__FILE__).'/cookie.txt';
//------------------------------------ ДАННЫЕ АВТОРИЗАЦИИ ------------------------------------
$_post_ar = array(
'Login' => 'ВашЛогин',
'Password' => 'ВашПароль',
'Domain' => 'mail.ru',
);
$Browser = new GCurl("http://win.mail.ru/cgi-bin/auth");
//Устанавливаем путь к файлу COOKIE
$Browser -> setCookiFile($cookie_file);
//Устанавливаем URL с которого мы перешли на сайт mail.ru. По умолчанию, мы пришли на сайт с поисковой системы google
$Browser -> setReferer(null);
//Запускаем работу скрипта. Если нужно, вторым параметром указываем пост данные (нам они как раз нужны)
$Browser -> callCurl(false,$_post_ar);
//Данный метод возвращает информацию, касающуюся специфической передачи/transfer
$info_ar = $Browser -> getHttpInfo();
//Данный метод возвращает страничку на которую мы перешли
$html = $Browser -> getWebPage();
//Данный метод возвращает ошибку возникшую во время работы cURL
$error_ar = $Browser -> getError();
//Чтобы увидеть что получилось, выводим полученную информацию на экран.
header('Content-Type: '.$info_ar['content_type']);
echo"<pre>";print_r($info_ar);echo"</pre>";
echo"<pre>";print_r($error_ar);echo"</pre>";
echo $html;
?>
Для реализации класса, была взята некоторая информация с других сайтов. С каких именно, точно не помню, но их авторам выражаю благодарность.Предупреждаю сразу, класс реализован не полностью и не претендует на удовлетворение всех потребностей. В нем нет поддержки прокси и загрузки файлов.
Если есть вопросы – задавайте. Пока что через форму обратной связи, т.к. функционал комментирования к статьям блога еще не реализовано.
Скачать библиотеку GCurl можно с этой странички.






