Загрузка файла cookie и публикация данных с помощью curl

#php #cookies #curl #http-post

#php #файлы cookie #curl #http-post

Вопрос:

Если я загружу файл cookie, я смогу перейти на страницу, для которой требуются файлы cookie, вот так:

 $cookie = ".ASPXAUTH=Secret";
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  

Здесь проблем нет, я могу запустить curl_exec и увидеть страницу, для которой требуются файлы cookie.

Если я также хочу отправить некоторые данные post, я могу сделать это следующим образом:

 $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, и если я отправлю только данные post, я смогу увидеть данные post.

Когда я отправляю оба файла, я вижу только файл cookie.

Почему?

Комментарии:

1. ммм, как выглядит скрипт, которому вы отправляете эти запросы curl?

2. @Neal В настоящее время я размещаю только в скрипте дампа на локальном сервере. Скрипт находится здесь pastebin.com/37mDNNHr

3. Каково содержимое php://input? Возможно, содержимое HTTP не обрабатывается должным образом в переменной $ _POST в зависимости от того, как curl отправляет тип содержимого.

Ответ №1:

Я, наконец, нашел решение.

Если я вручную установлю файл cookie, используя пользовательский http_header, я смогу получить желаемые результаты.

 curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie:.ASPXAUTH=secretData"));
  

Даже пробовал на разных серверах — те же результаты.