curl не отправляет значение cookie - PullRequest
2 голосов
/ 02 декабря 2009

Я пытаюсь прочитать значение cookie, которое я получил после входа в систему, отправив запрос POST.

Затем я хочу отправить это значение cookie с помощью другого запроса POST, используя Curl, для другого действия. Но после отправки этого сообщения, когда я пытаюсь просмотреть все опубликованные заголовки, отображается, что я отправил любое значение cookie. Это значение недоступно для моего опубликованного URL, поэтому он не может получить доступ к информации из-за аутентификации. Пожалуйста, скажите мне, где я сделал что-то не так:

$URL1        = "http://www.getinf.com/iconf/user?action=buGroup";
$postfields1 = "device=mapp&type=ajax&name1=ra&cc1=91&min1=90name2=imm&cc2=91&min2=97";

// sends a post request
$ch1 = curl_init();   
curl_setopt($ch1, CURLOPT_URL,$URL1); 
curl_setopt($ch1, CURLOPT_POST, 1);

curl_setopt($ch1, CURLOPT_COOKIE,'JSESSIONID=199FFF6355DEA87F3D72E692E7514AD2');
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch1, CURLOPT_HEADER,true);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1, CURLOPT_POSTFIELDS, $postfields1);

$result = curl_exec($ch1);

print_r(headers_list());// displays all post request data
$ret = ReturnVal($result);
print_r(get_headers($URL1, 1)); // 
curl_close ($ch1);

Так что же такого в этом коде, который запрещает доступ к значению JSESSIONID в качестве значения cookie?

Ответы [ 3 ]

1 голос
/ 02 декабря 2009

Проверьте комментарии (или выполните поиск "cookie") на этой странице в php документах :

Что не упоминается в документация, что вы должны установить CURLOPT_COOKIEJAR в файл для CURL ручка для фактического использования куки, если он не установлен, то куки не будут быть разобран.

0 голосов
/ 22 мая 2018

CURLOPT_COOKIESESSION используется для запуска нового сеанса Cookie и игнорирует все сохраненные cookie.

На PHP.net: используйте CURLOPT_COOKIESESSION = TRUE, чтобы пометить это как новый сеанс cookie. Это заставит libcurl игнорировать все файлы cookie, которые он собирается загрузить, которые являются «файлами cookie сеанса» из предыдущего сеанса. По умолчанию libcurl всегда сохраняет и загружает все куки, независимо от того, являются ли они сессионными куки или нет. Сессионные куки-файлы - это куки-файлы без даты истечения срока действия, и они предназначены для того, чтобы быть живыми и существующими только для этой «сессии».

использование: curl_setopt ($ ch, CURLOPT_COOKIESESSION, false);

0 голосов
/ 28 февраля 2011

Попробуйте изменить CURLOPT_cookie на CURLOPT_COOKIE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...