представьте следующий сценарий: я открываю соединение CURL и передаю некоторые XML-Logindata через POST. Сервер отвечает перенаправлением 302, где устанавливаются куки-файлы сеанса, и перенаправляет меня на следующую страницу приветствия. Если я включаю FOLLOWLOCATION, файлы cookie, установленные на странице перенаправления, теряются, и страница приветствия завершается с ошибкой «сеанс истек». Если я отключу FOLLOWLOCATION, я не буду перенаправлен (очевидно) и получу HTML-страницу с «страницей, перемещенной в другое место» со ссылкой, которая ведет меня на страницу приветствия. Это работает, когда куки установлены, но мне нужно следовать перенаправлению и сразу перейти на страницу приветствия.
Итак, как мне сохранить куки, чтобы они были установлены правильно?
Это мой код:
$ch = curl_init('https://www.example.com/login');
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, '<some xml data>');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=UTF-8"));
curl_exec($ch);
curl_close($ch)
Спасибо за любую помощь!
;