PHP cURL / Получить .csv файл от отправки формы, защищенный аутентификацией - PullRequest
0 голосов
/ 23 сентября 2019

Я хотел бы выполнить несколько шагов с помощью PHP cURL.Сначала я хотел бы подключить интерфейс, защищенный логином / паролем, а затем я хотел бы отправить форму, чтобы получить файл .csv, сгенерированный данными этой формы.

  1. Выполнение проверки подлинности cURL
  2. Выполнение отправки формы с конкретными данными
$curl = curl_init();

$params = array(
  'export_filter[typeExport]'=>'lead',
  'export_filter[pos]' => '0',
  'export_filter[date]'=> '{"start":"2019-09-16","end":"2019-09-23"}',
  'export_filter[use_close_date]'=> '0',
  'export_filter[_token]'=> 'ANf-0IKcfi5nAgJWaGyZdl9axeU8OCxjNSrMyFHyf4'
);

$param = http_build_query($params);

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://myfakedomain.net/export/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $param,
  CURLOPT_HTTPHEADER => array(
    "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
    "accept-encoding: gzip, deflate, br",
    "accept-language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7",
    "authority: myfakedomaine.net",
    "cache-control: max-age=0,no-cache",
    "content-type: application/x-www-form-urlencoded",
    "cookie: device_view=full; _ga=GAxxxxx; _gid=GAxxxxx; _gat=1; PHPSESSID=8bf2766d18ddxxxxxxxxxab7927b6b",
    "origin: https://myfakedomain.net",
    "referer: https://myfakedomain.net/export/",
    "sec-fetch-mode: navigate",
    "sec-fetch-site: same-origin",
    "sec-fetch-user: ?1",
    "upgrade-insecure-requests: 1",
    "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
Получить динамический файл .csv, сгенерированный этой формой, и загрузить в браузер (на той же странице формы)

Возможно ли это сделать?С чего мне начать ?Спасибо

...