Авторизуйтесь с помощью Guzzle на форме - оставьте заявку на test.de - PullRequest
0 голосов
/ 05 марта 2019

Я хотел бы использовать свой PHP-скрипт и Guzzle для входа на этот сайт: https://www.test.de/meintest/login/

Однако я уже перепробовал много решений, а также прочитал эту статью, но мне все равно не удаетсяпри входе в систему .. в основном потому, что запрос сложен очень сложно .. Я использовал Firefox для регистрации запросов, которые делает веб-сайт, когда я нажимаю "Einloggen" (означает логин).Перед входом в систему выполняется XHR-запрос. Я думаю, что это как-то связано с логином и параметрами ..

Пока это мой код:

$loginURL = "https://test.de/meintest/login";

$guzzle = new \GuzzleHttp\Client();
$cookieJar = new \GuzzleHttp\Cookie\CookieJar();

$response = $guzzle->request('POST', $loginURL, [
        'form_params' => [
            'username' => "0000000000",
            'password' => "0000000000",
            'action' => 'login'
        ],
        'cookies' => $cookieJar,
        'debug' => true
    ]
);

var_dump($response->getBody()->getContents());
var_dump($guzzle->getConfig('cookies'));

Есть такженекоторые скрытые данные, которые заполняются запросом XHR, я думаю ..

Не могли бы вы, ребята, помочь мне и сказать, где моя ошибка ..?

РЕДАКТИРОВАТЬ НоЯ также могу предположить, что причина, по которой он не работает, заключается в том, что эта строка var_dump($guzzle->getConfig('cookies')); всегда печатает bool(false) вместо файлов cookie. Сохраняются ли файлы cookie?

С уважением и благодарностьюВы!

1 Ответ

0 голосов
/ 05 марта 2019

Я заметил, что есть 2 скрытых ввода "источник" и "хеш", очевидно, вы пропускаете эти поля.

В настоящее время большинство веб-сайтов имеют защиту от CSRF.Вы не можете просто опубликовать formData для входа в систему.

...