2013-07-31 4 views
0

Ситуация:PHP локон cookie_session и перемещение

При вводе сайт, он устанавливает куки сессии и перенаправляет к себе.

Проблема:

При использовании завиток с FOLLOW_RELOCATION и COOKIE_SESSION, он не применяется куки после редиректа и заканчивается с максимальной предельной Перенаправление достигла ошибки.

Код:

curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIESESSION, 1); 
curl_setopt($ch, CURLOPT_INTERFACE, $ip); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 

Многословный выход:

* About to connect() to www.thesite.org port 80 (#0) 
* Trying x.x.x.254... * Name 'x.x.29.61' family 2 resolved to 'x.x.29.61' family 2 
* Local port: 0 
* connected 
* Connected to www.thesite.org (x.x.x.254) port 80 (#0) 
> GET/HTTP/1.1 
Host: www.thesite.org 
Accept: */* 

< HTTP/1.1 302 Moved Temporarily 
< Date: Wed, 31 Jul 2013 15:14:05 GMT 
< Server: Apache 
< cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
< pragma: no-cache 
< expires: Mon, 17 Jul 1978 05:00:00 GMT 
< Last-Modified: Wed, 31 Jul 2013 15:14:05 GMT 
< Set-Cookie: JSESSIONID=0A2488FF811CCDAB6A6C95C12AA3F4F8.DB4B9335DF549E1FCF56CF5BD8; Path=/ 
< Location: http://www.thesite.org/ 
< Content-Length: 0 
< Vary: Accept-Encoding 
< Content-Type: text/html 
< 
* Connection #0 to host www.thesite.org left intact 
* Issue another request to this URL: 'http://www.thesite.org/' 
* Re-using existing connection! (#0) with host www.thesite.org 
* Connected to www.thesite.org (x.x.x.254) port 80 (#0) 
> GET/HTTP/1.1 
Host: www.thesite.org 
Accept: */* 

< HTTP/1.1 302 Moved Temporarily 
< Date: Wed, 31 Jul 2013 15:14:06 GMT 
< Server: Apache 
< cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
< pragma: no-cache 
< expires: Mon, 17 Jul 1978 05:00:00 GMT 
< Last-Modified: Wed, 31 Jul 2013 15:14:06 GMT 
< Set-Cookie: JSESSIONID=5A80785B002D8C37F73F798B75A090B4.47EF37A843F03A8253F26BC644; Path=/ 
< Location: http://www.thesite.org/ 
< Content-Length: 0 
< Vary: Accept-Encoding 
< Content-Type: text/html 
< 
* Connection #0 to host www.thesite.org left intact 
* Issue another request to this URL: 'http://www.thesite.org/' 
* Re-using existing connection! (#0) with host www.thesite.org 
* Connected to www.thesite.org (x.x.x.254) port 80 (#0) 
> GET/HTTP/1.1 
Host: www.thesite.org 
Accept: */* 

etc... 

Возникает вопрос:

Что я делаю неправильно? Как заставить его работать? Конечно, я мог бы подключиться два раза и установить его вручную, но это не то, что я хотел бы сделать, поэтому я использую CURL, а не file_get_contents().

+1

Какой код вы используете для настройки обработчика завитушек? –

+0

Вопрос отредактирован, код выше. –

ответ

0

Ваш код не показывает, что вы используете файл cookie для хранения информации между загрузками страниц.

Добавьте следующие строки, и они должны работать лучше.

$cookie_file='cookies.txt'; //Change this to wherever you want. 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
+0

Да, и я не хочу использовать файлы для хранения файлов cookie. Невозможно сделать один запрос, не сохранив ничего? 'curl_setopt ($ ch, CURL_COOKIEJAR, '/ dev/null');' не помогает. –

+0

О, это должно быть 'CURLOPT_COOKIEJAR', теперь оно работает –

Смежные вопросы