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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> cURL и куки. Заезженная тема, Корректная работа с куками на курле 
:(
    Опции темы
Pori
Дата 19.8.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем привет!

Сделал свою обертку над курловской. Нужно работать с куками. С CURLOPT_COOKIEJAR и CURLOPT_COOKIEFILE это не проблема. Все работает на ура, НО такая уж ситуация, что временным файлом для хранения кук пользоваться уж никак нельзя. Вот что написал:

Код

    public function post($url,$fields)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url); 
        curl_setopt($ch, CURLOPT_REFERER, $this->referer);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
        curl_setopt($ch, CURLOPT_PROXY, $this->proxy); 
        curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout); 
        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
        curl_setopt($ch, CURLOPT_COOKIE, $this->cookies);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        curl_setopt ( $ch , CURLOPT_USERAGENT , $this->agent);
        curl_setopt ( $ch , CURLOPT_HTTPHEADER , $this->header);
        $result = curl_exec($ch);
        curl_close($ch);        
        $this->referer = $url;
        preg_match_all("/Set-Cookie: (.*);/U", $result, $results);  
        $f = array($this->cookies, implode(';', $results[1]));
        $this->cookies = trim(implode(';', $f),';');
        return $result;
    }


Ну и соответственно у класса есть все переменные, что тут описаны, все чики-пуки. 

Этот способ работает корректно при ручных переходах по страницам, но если, например, страница ставит куки и на ней стоит Location (или другими словами редирект) на другую страницу, которая эти самые куки использует, то такой способ не прокатит, так как мы обновим cookies только при следующем запросе.

Ну и вопрос напрашивается сам собой. Как сделать? ;)

Заранее, спасибо за помощь =)
PM MAIL   Вверх
Ипатьев
Дата 19.8.2009, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



спамим помаленьку?
PM MAIL   Вверх
Pori
Дата 19.8.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



почему же сразу спамим. Спамим на C++ с многопоточностью ;) А такая обертка всегда пригодиться, чем на голом курле каждый разписать запросы. Что касается конкретно этого скрипта - это для личных нужд заказчика, набить рейтнг на одном сайте.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




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


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

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