Загрузите файл с PHP, который находится за логином - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь загрузить файл с веб-сервера с PHP для дальнейшей обработки. Итак, я делаю:

file_put_contents('tmp/' . $file . '.txt', fopen('http://some_domain.tld/download.php?file=' . $file, 'r'));

Но я понял, что файлы доступны только зарегистрированным пользователям, поэтому я изучил форму входа и придумал следующий код cURL (поставьте перед кодом для загрузки file):

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://some_domain.tld/login.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
    'take_login' => '1', // This is a hidden field in the form
    'logout' => 'no', // This is another hidden field in the form
    'username' => 'some_username',
    'password' => 'some_password'
)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
curl_close($ch);

Проблема в том, что любой файл, который "загружен", на самом деле не сам файл, а скорее код HTML логина. php страница, где URL http://some_domain.tld / download. php? File = 999999 перенаправляется на. Но у меня сложилось впечатление, что упомянутый выше код cURL позволит убедиться, что скрипт вошел в систему ...

Что я делаю не так? Это действительно расстраивает ...

...