представьте себе следующий сценарий: я открываю соединение CURL и передаю некоторые XML-Logindata через POST. Сервер отвечает с перенаправлением 302, где установлены cookie сеанса и перенаправляет меня на следующую "приветственную" страницу. Если я разрешаю FOLLOWLOCATION, файлы cookie, установленные на странице перенаправления, теряются, а страница приветствия - с сообщением "session expired". Если я отключу FOLLOWLOCATION, я не перенаправлен (очевидно) и получаю HTML-страницу со "переходом страницы в другое место" со ссылкой, которая ведет меня на страницу приветствия. Это работает, поскольку файлы cookie установлены, но мне нужно следовать перенаправлению и перейти прямо к странице приветствия.
Итак, как я могу сохранить файлы cookie, чтобы они были установлены правильно?
Это мой код:
$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)
Спасибо за любую помощь! ;