Если я загружаю файл cookie, я могу перейти на страницу, где требуются файлы cookie, например:
$cookie = ".ASPXAUTH=Secret"; curl_setopt($ch, CURLOPT_COOKIE, $cookie);
Здесь нет проблем, я могу запустить curl_exec
и посмотреть страницу, на которой требуются файлы cookie.
Если я также хочу отправить некоторые данные, я могу сделать вот так:
$data = array( 'index' => "Some data is here" ); $cookie = ".ASPXAUTH=Secret"; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_COOKIE, $cookie);
Я установил сценарий дампа на моем локальном сервере, чтобы убедиться, что он работает. Если я отправляю только файл cookie, я могу увидеть его в заголовках http, и если я отправлю только данные сообщения, я могу видеть данные сообщения.
Когда я отправляю оба, я вижу только cookie.
Зачем?
Наконец я нашел решение.
Если я вручную установил cookie, используя пользовательский http_header, я могу получить желаемые результаты.
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie:.ASPXAUTH=secretData"));
Даже пробовали на разных серверах – одни и те же результаты.