Сохраняйте файлы cookie, созданные в прочитанном файле, все еще существующие в следующем другом файле, прочитанном php

Итак, я хочу сделать вызов API с помощью PHP из https://www.mangaeden.com/api/mymanga (я называю это «первым файлом»), чтобы получить мои личные данные (например, мой любимый комикс и т. д.) в формате JSON, но для этого мне нужно войти в систему с https://www.mangaeden.com/ajax/login/?username=xxx&password=xxx (я звоню этот «второй файл»), этот файл содержит программу для хранения файлов cookie, которая содержит мое имя пользователя и пароль, которые я дал из параметра URL.

Когда я запускаю первый файл с функцией cURL для отправки заголовка, заголовок, который также содержит данные файлов cookie, включая мое имя пользователя и пароль, успешно отправляется, но после этого, когда я вызываю второй файл для отправки моих личных данных, файл cookie не существует, поэтому мой файл данных не появляется.

function run_set_cookie_function_inside_this_file($file_url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $file_url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_exec($ch);
    curl_close($ch);
}

// if this file is executed, the user's username and password will be stored in cookies
run_set_cookie_function_inside_this_file("https://www.mangaeden.com/ajax/login/?username=xxx&password=xxx");
// this file requires user's username and password which stored in cookies to return other data (example: user's favorite movie, pet, etc.)
echo file_get_contents("https://www.mangaeden.com/api/mymanga/");

Примечание: 2 файла (первый и второй) не мои, поэтому я не могу изменить программный код внутри

Это моя проблема, поэтому мой вопрос: как сохранить файлы cookie, созданные в первом файле, во втором файле?

Извините за мой плохой английский и грязные предложения, которые трудно понять. Большое спасибо за помощь!


person Dafiul Haq    schedule 19.06.2019    source источник
comment
Вам нужно установить CURLOPT_COOKIEJAR и CURLOPT_COOKIEFILE (что, ИМХО, могло бы вам уже сказать небольшое базовое исследование, прежде чем спрашивать.)   -  person 04FS    schedule 19.06.2019
comment
попробуйте мой последний ответ!   -  person Baransel A.    schedule 19.06.2019


Ответы (1)


                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL,'https://www.mangaeden.com/ajax/login/?username=xxx&password=xxx');
                curl_setopt($ch, CURLOPT_COOKIE, true);
                curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
                curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
                curl_exec($ch);

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL,'https://www.mangaeden.com/api/mymanga/');
                curl_setopt($ch, CURLOPT_COOKIE, true);
                curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
                curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
                $output = curl_exec($ch);
                echo $output;
                curl_close($ch)

У меня есть что-то вроде этого входа в систему с первым завитком и запросом API со вторым!

person Baransel A.    schedule 19.06.2019