Следите, чтобы файлы cookie, созданные для файла чтения, оставались в следующем файле, читаемом php - PullRequest
1 голос
/ 19 июня 2019

Поэтому я хочу сделать вызов 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, созданные в первом файле, во втором файле?

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

1 Ответ

1 голос
/ 19 июня 2019
                $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)

У меня есть что-то вроде этого логина с первым curl и запросить api со вторым!

...