Проблема с сохранением куков в CURL

123
ewg777
На сайте с 04.06.2007
Offline
225
#11
plamar:
даже если просто по деревенски написать cookie.txt, то происходит аналогичная ситуация - файл с кукисами либо пуст, либо (если его не создавать изначально) он и не появляется.

Что касается разных вариантов, то я уже целое утро их пробую))

КСТАТИ, формы для передачи заполняются вот на этой страничке:
http://en.wordpress.com/signup/ , а отправляются на http://en.wordpress.com/signup/?blog=1

Код вызова покажите.

[Удален]
#12
ewg777:
Код вызова покажите.

$postData = array(

'pass1' => $user_pass,

'pass2' => $user_pass,

'stage' => 'validate-user-signup',

'u' => '',

'user_name' => $user_name,

'user_email' => $user_email,

'signup_for' => 'blog',

'tos' => '1',

'Submit' => 'Next →'

);

$html=sendPostDataCURL( "http://en.wordpress.com/signup/?blog=1",$postData,'TESTCOOKIE=home;',"cookie.txt","cookie.txt");

malls
На сайте с 08.08.2005
Offline
255
#13
plamar:

$html=sendPostDataCURL( "http://en.wordpress.com/signup/?blog=1",$postData,'TESTCOOKIE=home;',"cookie.txt","cookie.txt");

TESTCOOKIE=home

попадает в

$cookiestr=""

и превращается в доп куку:

curl_setopt($ch, CURLOPT_COOKIE, $cookiestr);

уверены что это вообще надо?

Интереснее посмотреть заголовки какие отдают обе страницы - может там и куков нет никаких? Сл-но проблема тогда не в них будет, а в области авторизации или чего вы там делаете...

[Удален]
#14
malls:
TESTCOOKIE=home
попадает в
$cookiestr=""
и превращается в доп куку:
curl_setopt($ch, CURLOPT_COOKIE, $cookiestr);

уверены что это вообще надо?

Интереснее посмотреть заголовки какие отдают обе страницы - может там и куков нет никаких? Сл-но проблема тогда не в них будет, а в области авторизации или чего вы там делаете...

пробовал вызывать функцию и без "TESTCOOKIE=home" (то есть передавая пустой параметр). Дело в том, что отправить формы здесь как раз получается успешно (можно даже без TESTCOOKIE=home - ведь она нужна при отправке следующей формы, которая уже окончательно создает блог). Я проверял заголовки Fiddlerом - так вот, после отправки первой формы (о которой сейчас разговор), вторая уже отправляется серверу с установлеными двумя куками (соответственно TESTCOOKIE=home и еще одним, который не обязателен). Опять же - я проверял просто в браузере - после отправки данной формы создается 2 кука - TESTCOOKIE=home и еще один.

dayw
На сайте с 25.01.2006
Offline
116
#15

У меня на нескольких скриптах на денвере, аналогичная ситуация, т.е.

даже если просто по деревенски написать cookie.txt, то происходит аналогичная ситуация - файл с кукисами либо пуст, либо (если его не создавать изначально) он и не появляется.

Но все работает, т.е. в моем случае авторизация и хождение по сайту и т.п...

Я так и думал, что видеть содержимое кук в этом файле не должен я )))

Интернет-магазин игровых приставок в Москве (https://savelagame.ru)
malls
На сайте с 08.08.2005
Offline
255
#16
dayw:

Но все работает, т.е. в моем случае авторизация и хождение по сайту и т.п...
Я так и думал, что видеть содержимое кук в этом файле не должен я )))

Вполне вероятно что их там нет просто - авторизацию можно и сессией сделать...

malls добавил 11.01.2010 в 15:19

plamar:
пробовал вызывать функцию и без "TESTCOOKIE=home" (то есть передавая пустой параметр). Дело в том...

Дело в том ... что

curl_setopt($ch, CURLOPT_COOKIE, $cookiestr);

вообще не нужно в данном случае

dayw
На сайте с 25.01.2006
Offline
116
#17
malls:
Вполне вероятно что их там нет просто - авторизацию можно и сессией сделать...

malls добавил 11.01.2010 в 15:19

Дело в том ... что

вообще не нужно в данном случае

В моих случая именно через куки авторизация. Это точно. но да лан. Я просто сказал, как бывает

[Удален]
#18

http://helldude.ru/inner/wp.com.php

никакой сессии не надо, руки надо прямые только.

[Удален]
#19
malls:
Вполне вероятно что их там нет просто - авторизацию можно и сессией сделать...

malls добавил 11.01.2010 в 15:19

Дело в том ... что

вообще не нужно в данном случае

ладно, объясню ситуацию до конца:


$postData = array(
'pass1' => $newUserParams['user_pass'],
'pass2' => $newUserParams['user_pass'],
'stage' => 'validate-user-signup',
'u' => '',
'user_name' => $newUserParams['user_name'],
'user_email' => $newUserParams['user_email'],
'signup_for' => 'blog',
'tos' => '1',
'Submit' => 'Next →'
);

//мы могли бы и не отсылать формы 2 раза, но после первой отсылки мы можем отпарсить значение скрытого поля _seq

$html=sendPostDataCURL( $this->_httpRegistrationAddress,$postData,'',$this->cookies_file_path,$this->cookies_file_path);



$postData = array(
'pass1' => $newUserParams['user_pass'],
'pass2' => $newUserParams['user_pass'],
'stage' => 'validate-blog-signup',
'blog_public' => '1',
'u' => '',
'blogname' => $newUserParams['user_name'],
'user_name' => $newUserParams['user_name'],
'user_email' => $newUserParams['user_email'],
'_seq' => $this->getHiddenFieldValueByName('_seq',$html),
'blog_title' => $newUserParams['user_name']. 'sBlog',
'language' => '1',
'Submit' => 'Signup'
);


//теперь если не передать значине 'TESTCOOKIE=home;' (а вместо него просто пустую строку), то вместо создания блога получим страницу оповещающую об ошибке

$html=sendPostDataCURL( $this->_httpRegistrationAddress,$postData,'TESTCOOKIE=home;',$this->cookies_file_path,$this->cookies_file_path);

plamar добавил 11.01.2010 в 16:58

bearman:
http://helldude.ru/inner/wp.com.php

никакой сессии не надо, руки надо прямые только.

так я и говорю, что здесь куки сохранять необязательно, а вот чтобы закончить регистрацию без куки никак не получится.

Хотя вот только что обратил внимание, что куки тут реально javascritp-ом устанавливаются:

<script type="text/javascript">

<!--

document.cookie='TESTCOOKIE=home; expires=Thu, 21 Jan 2010 13:56:08 +0000; path=/';jQuery('#testcookie').val('1');

// -->

</script>

[Удален]
#20
plamar:
так я и говорю, что здесь куки сохранять необязательно, а вот чтобы закончить регистрацию без куки никак не получится.

ссылоку мою еще раз посмотрите, там вас ожидает удивление

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий