Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с сайтом требующим авторизации, Curl 
:(
    Опции темы
lancelot555
Дата 6.2.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



Как работать с сайтом(скачать, заполнить форму и т.д.) требующим авторизации? Авторизация с помощью сессий smile
smile
Код

$url ="Урл для входа с логином и паролем";  // Вход работает....
$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to  
curl_setopt($ch, CURLOPT_FAILONERROR, 1);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects  
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable  
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s  
curl_setopt($ch, CURLOPT_POST, 1); // set POST method  
$result = curl_exec($ch); // run the whole process  

if(strpos($result,"Login")>0) {
    $url="урл заполнения формы со всеми параметрами";
    curl_setopt($ch, CURLOPT_URL,$url); // set url to post to  
    $res = curl_exec($ch); // run the whole process  
    echo $res;
    }
    curl_close($ch);   


В итоге работы этого скрипта выдается ошибка о том что ваша сессия закончена, нужно авторизоваться...

Это сообщение отредактировал(а) lancelot555 - 6.2.2006, 14:20
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
WolfON
Дата 11.2.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



Забыл про cookie
PM MAIL ICQ   Вверх
lancelot555
Дата 12.2.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 19.2.2005

Репутация: нет
Всего: нет



WolfON, пробовал с куками но не помогло, но там(куда нужно коннектится) оказывается все написано на Яве в том числе и авторизация... как быть???
--------------------
Hи что так не поpтит цель, как попадание! =)
PM MAIL   Вверх
AntonioBanderaz
Дата 14.2.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 18



Да пофиг на чём написано я вот из VB к сервлету на джаве подключаюмь и сессию держу... Это уже от кривости рук зависит )))

А зачем тебе curl? сделай сокетами

Код

function autorization($url, $data) {
     $_url = parse_url($url);
     $header = 'POST '.$_url['path'].'/ HTTP/1.1 \r\n';
     $header .= 'Accept: */* \r\n';
     $header .= 'Accept-Language: ru \r\n';
     $header .= 'Host: '.$_url['host'].' \r\n';
     $header .= 'Content-Length: '.strlen($data) + 2.'\r\n';
     $header .= '\r\n';
     $header .= $data;

     $response = '';
     $sock = fsock_open($url, 80);
     if(!$sock) die('Cudn\'t connect');
     if(!fwrite($sock, $header)) die('Cudn\'t send data');
     while($res = fread($sock, 1024)) 
           $response .= $res;
     
     $cookie = substr($response, strpos("Set-Cookie: "));
     $cookie = substr($cookie, 0, strpos('\r\n'));

     return $cookie;  
}

function autorization_view($url, $cookie) {
     $_url = parse_url($url);
     $header = 'GET '.$url.' HTTP/1.1 \r\n';
     $header .= 'Accept: */* \r\n';
     $header .= 'Accept-Language: ru \r\n';
     $header .= 'Host: '.$_url['host'].' \r\n';
     $header .= 'Cookie: '.$cookie.'\r\n';


     $response = '';
     $sock = fsock_open($url, 80);
     if(!$sock) die('Cudn\'t connect');
     if(!fwrite($sock, $header)) die('Cudn\'t send data');
     while($res = fread($sock, 1024)) 
           $response .= $res;

     return $response;
}

function autorization_send_data($url, $data, $cookie) {
     $_url = parse_url($url);
     $header = 'POST '.$_url['path'].'/ HTTP/1.1 \r\n';
     $header .= 'Accept: */* \r\n';
     $header .= 'Accept-Language: ru \r\n';
     $header .= 'Host: '.$_url['host'].' \r\n';
     $header .= 'Cookie: '.$cookie.'\r\n';
     $header .= 'Content-Length: '.strlen($data) + 2.'\r\n';
     $header .= '\r\n';
     $header .= $data;

     $response = '';
     $sock = fsock_open($url, 80);
     if(!$sock) die('Cudn\'t connect');
     if(!fwrite($sock, $header)) die('Cudn\'t send data');
     while($res = fread($sock, 1024)) 
           $response .= $res;

     return $response;
}



Вот примерно так бы я и сделал... )))

Это сообщение отредактировал(а) AntonioBanderaz - 14.2.2006, 11:09


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
CyClon
Дата 6.2.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Напиши эмулятор браузера на PHP smile)) Пусть получает COOKIE и пишет их в файл, при след обращении к странице отправляет их и т.д. smile


--------------------
user posted image
PM   Вверх
amster8
Дата 30.3.2008, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.3.2008

Репутация: нет
Всего: нет



А как быть, если сайт обращается к отдельному файлу, где яваскриптом проверяются куки, если host != 'их сайт'?
PM MAIL   Вверх
Feldmarschall
Дата 30.3.2008, 09:42 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



amster8, можно перестать писать ботов и, для разнообразия, попробовать работать с сайтом честно.
PM   Вверх
amster8
Дата 30.3.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.3.2008

Репутация: нет
Всего: нет



Так я работал, просто это рутиная работа, которую я пытаюсь автоматизировать, куда приятнее когда всё делает скрипт.
PM MAIL   Вверх
Feldmarschall
Дата 30.3.2008, 12:02 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 1
Всего: 32



Рутинную работу автоматизируют другими способами.
Гораздо более простыми. 
Если это действительно работа. Согласованная с администрацией сайта.
Но по описанию все выглядит так, что администрация, как раз, против такой "работы".

PM   Вверх
source777
Дата 30.3.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата

пробовал с куками но не помогло, но там(куда нужно коннектится) оказывается все написано на Яве в том числе и авторизация... как быть???
По своему опыту могу сказать, что CURL прекрасно справляется и с сессиями, и с сайтами на JSP, и даже если они доступны только по HTTPS.


Цитата(Feldmarschall @  30.3.2008,  12:02 Найти цитируемый пост)
Рутинную работу автоматизируют другими способами.Гораздо более простыми. Если это действительно работа. Согласованная с администрацией сайта.Но по описанию все выглядит так, что администрация, как раз, против такой "работы".
Разные ситуации бывают, например, я лично сталкивался с ситуацией, когда владельцы сайта просили автоматизировать некоторую последовательность действий, но при этом самым основным условием было, сделать это так, чтобы не вмешиваться в уже существующий код, уж не знаю какими фобиями было обусловленно данное требование, но факт есть факт. Сайт кстати был как раз на JSP.



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.