Curl + Cookie вопрос - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD64104.4306
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 10.05.2011, 07:40   #1
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
Question Curl + Cookie вопрос

никак понять не могу, как курл оперирует с куками:

как сбросить все куки у текущего хендлера и дальше продолжить запросы? CURLOPT_COOKIESESSION не помогает

PHP код:
<?php
$ch 
curl_init();
curl_setopt($chCURLOPT_URL'http://www.google.ru/');
curl_setopt($chCURLOPT_VERBOSETRUE);
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
curl_setopt($chCURLOPT_COOKIEJAR'-');
curl_exec($ch); // гугл поставит куку
curl_setopt($chCURLOPT_COOKIESESSIONTRUE); // попытка стереть куки
curl_exec($ch); // обращаемся к гугл с предыдущими куками, которые так и не стерлись
?>
Вобщем, иногда нужно сбрасывать куки в открытом хендлере, как?
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.05.2011, 09:07   #2
y4b53
:(
 
Аватар для y4b53
 
Регистрация: 25.11.2008
Сообщений: 759
Бабло: $94392
По умолчанию

Код:
curl_setopt($ch, CURLOPT_COOKIEFILE, 'file.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'file.txt');
и очищаем файл с cookies - file.txt
Код:
$fp = fopen("file.txt","w");
fwrite($fp, "");
fclose($fp);
__________________
Знать путь и пройти его — не одно и то же. Pharmcash & PharmcashUSA - знаем, проходили... Лидеры в фарме
y4b53 вне форума  
Старый 10.05.2011, 09:23   #3
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
ТС -->
автор темы ТС По умолчанию

y4b53, ну согласись костыль? не должен такой функционал завязываться на фс

на сях есть константа CURLOPT_COOKIELIST - ее установкой можно стереть все куки в памяти, а в пхп ее нет, вот думал может куки-сессиями как-то оно рулится

пошел курить сорсы курла
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.05.2011, 09:27   #4
medar
кодер-энтузиаст
 
Аватар для medar
 
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
По умолчанию

Можно тупо курл гасить - curl_close(); Ты ведь, надеюсь, через либу с курлом работаешь, не сразу в главном коде эти curl_setopt делаешь ? Сделать класс с хранимыми куками, рефером и прочим, и работать через него. И каждый запрос инитить заново.

Цитата:
и очищаем файл с cookies - file.txt
CURLOPT_COOKIEJAR сбрасывает куки в файл после curl_close(), так что тут эта очистка совершенно бесполезна.
medar вне форума  
Старый 10.05.2011, 09:34   #5
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от medar Посмотреть сообщение
Можно тупо курл гасить - curl_close();
да, так работает
но зачем его гасить, если не нужно гасить

сейчас смотрю pecl расширение pecl_http там есть HttpRequest::resetCookies - вот оно вроде не гасит и куки сбрасывает, как раз этой константой CURLOPT_COOKIELIST, если я правильно понял

Цитата:
Можно тупо курл гасить - curl_close(); Ты ведь, надеюсь, через либу с курлом работаешь, не сразу в главном коде эти curl_setopt делаешь ? Сделать класс с хранимыми куками, рефером и прочим, и работать через него. И каждый запрос инитить заново.
угу, своя либа. Но подумываю взять общественную обертку какую-нибудь. Не подскажешь?
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.05.2011, 09:46   #6
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
ТС -->
автор темы ТС По умолчанию

это у меня либа типа серверного браузера, ходит по инету мультипоточно.
и вот хочу сделать такую фичу как в браузере "редактор кук", чтобы чистить куки налету для некоторых запросов.
Ради этого пересоздавать хендлер курла - ну как-то не логично

ps ну или думаю отказаться от своего велосипеда и пересесть на общественные варианты, но тогда какие? js не нужен, но нужен рендеринг css
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.05.2011, 11:06   #7
medar
кодер-энтузиаст
 
Аватар для medar
 
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
По умолчанию

Цитата:
Сообщение от chesser
сейчас смотрю pecl расширение pecl_http там есть HttpRequest::resetCookies - вот оно вроде не гасит и куки сбрасывает, как раз этой константой CURLOPT_COOKIELIST, если я правильно понял
По идее, все CURLOPT_ - это просто константы, т.е. просто числа. Курл - либа сишная, на вход принимает эти управляющие команды, от языка вообще не зависит. Надо узнать, какое числовое значение стоит за CURLOPT_COOKIELIST и подать его на curl_setopt().

Цитата:
Сообщение от chesser
угу, своя либа. Но подумываю взять общественную обертку какую-нибудь. Не подскажешь?
У меня тоже своя, надерганная из разных источников. Наиболее актуальные скрипты сейчас на гитхабе, попробуй там поискать.

Цитата:
Сообщение от chesser
Ради этого пересоздавать хендлер курла - ну как-то не логично
Да, не логично, но если так работает правильно, а "логично" - неправильно, то надо юзать нелогичный вариант. Все равно основное время тратится на ожидание ответа от удаленного сервера, создание хендлера по сравнению с этим - доли процента.
medar вне форума  
Старый 10.05.2011, 12:20   #8
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от medar Посмотреть сообщение
По идее, все CURLOPT_ - это просто константы, т.е. просто числа. Курл - либа сишная, на вход принимает эти управляющие команды, от языка вообще не зависит. Надо узнать, какое числовое значение стоит за CURLOPT_COOKIELIST и подать его на curl_setopt().
не, я исходники php-curl коннектора посмотрел - там хуй вместо CURLOPT_COOKIELIST

т.е. в libcurl функционал есть, а в php-шной версии пока нет
в принципе, можно и дописать, там будет php врапер на 10 строчек кода и все, потом пхп пересобрать и вперед
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.05.2011, 12:28   #9
kalombo
Senior Member
 
Регистрация: 20.04.2008
Сообщений: 604
Бабло: $116367
Отправить сообщение для kalombo с помощью ICQ
По умолчанию

Цитата:
Сообщение от y4b53 Посмотреть сообщение
Код:
curl_setopt($ch, CURLOPT_COOKIEFILE, 'file.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'file.txt');
Вообще вымораживают эти опции, гораздо удобней юзать COOKIELIST, однако во всех манах, статьях, блогах, примерах стоят именно эти опции и новички юзают именно их.

Upd. Сори, не знал, что в пхп такой константы нет.
kalombo вне форума  
Старый 10.05.2011, 12:29   #10
imgreen
Senior Member
 
Аватар для imgreen
 
Регистрация: 15.11.2008
Сообщений: 13,230
Бабло: $247845891
По умолчанию

не понимаю в чем проблема удалить файл с куками
imgreen вне форума