Как я могу получить cookie после входа на страницу, используя cURL - PullRequest
0 голосов
/ 20 февраля 2019

Итак, я создал эту функцию под названием get_cookie.Прямо сейчас он просто возвращает содержимое этой страницы.Код работает, как, когда я отображаю страницу, он показывает, что я успешно вошел в систему.

Итак, у меня есть 2 вопроса

  1. Что мне нужно поставить в качестве возвратазначение в функции get_cookie для получения файла cookie?

  2. Как выполнить синтаксический анализ файла cookie при выполнении другого запроса?


<?php
function get_cookie($url, $username, $password) {

    $data = [
        "username"      => $username,
        "password"      => $password,
    ];

    $dataString = http_build_query($data);

    $ch = curl_init();

    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_POST, count($data));
    curl_setopt($ch,CURLOPT_POSTFIELDS, $dataString);

    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

    return curl_exec($ch);
}

$url = "https://www.example.com/login";

$username = "user";
$password = "pass";

echo get_cookie($url, $username, $password);
?>

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете использовать следующие два параметра скручивания:

CURLOPT_COOKIEJAR - в качестве местоположения файла, в котором хранятся файлы cookie, возвращаемые CURLOPT_COOKIEFILE - откуда читать файлы cookie для отправки при выполнении вызова curl

Возможно, вы установили бы эти две переменные в одно и то же значение, например:

curl_setopt($ch, CURLOPT_COOKIEJAR , dirname(__FILE__) .'/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE , dirname(__FILE__) .'/cookies.txt');

Это означает, что перед отправкой запроса curl функция curl считывает файл cookies.txt, расположенный в том же каталоге, что и файлсделать скручивающий вызов, чтобы проверить, есть ли сохраненные куки и отправить их (если есть).При получении ответа от «свернутого» сервера он сохраняет файлы cookie в файле cookies.txt в том же каталоге, что и имя файла, переданное в качестве значения опции CURLOPT_COOKIEJAR.

Вам не нужно создаватьэтот файл, прежде чем сделать запрос, curl создаст его для вас автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...