Как войти на сайт с помощью команд PHP curl

Я пытаюсь войти на этот сайт с помощью команд PHP curl:

https://users.premierleague.com/accounts/login/

Пока мой код выглядит так

`

  $ch = curl_init(); 

  curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_URL => 'https://users.premierleague.com/accounts/login/',
    CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
    CURLOPT_POST => TRUE,
    CURLOPT_POSTFIELDS => array(
      'login' => 'username',
      'password' => 'password',
      'app' => 'plfpl-web',
      'redirect_uri' => 'https://fantasy.premierleague.com/a/login'
    ),
    CURLOPT_FOLLOWLOCATION => TRUE,
    CURLOPT_COOKIESESSION => TRUE,
    CURLOPT_COOKIEFILE => $cookie_file_path,
    CURLOPT_COOKIEJAR => $cookie_file_path
  ));

  $output = curl_exec($ch);
  curl_close($ch);

`

Когда я запускаю это в браузере, он не входит в систему. Я получаю новый файл cookie в $cookie_file_path, но не могу войти в систему. Он просто распечатывает страницу входа в систему html. Я пробовал анализировать вещи с помощью вкладки сетей в инструментах разработчика Chrome, но я не стал мудрее. Я предполагаю, что это как-то связано с файлом cookie сеанса. Любая помощь очень ценится.

Этот сайт использует токены CSRF, чтобы вы не делали этого.

Alex Howansky 09.08.2018 17:35

@AlexHowansky А, ладно, я не понимал, что это то, что делают токены CSRF. Я просто зря потратил часы, пытаясь это сделать :(

Michael Andrew Bentley 09.08.2018 17:40

Ну, технически это не является их предназначением, но это хороший побочный эффект. Возможно, вы сможете запросить страницу, проанализировать токен, а затем отправить его обратно вместе с попыткой входа в систему.

Alex Howansky 09.08.2018 17:40

Я удивлен, что нет никакого обходного пути. Я имею в виду, если я могу войти в систему с помощью браузера, обязательно должен быть способ входа в командную строку?

Michael Andrew Bentley 09.08.2018 17:42

Многие сайты (например, те, которые содержат спортивные результаты) не хотят, чтобы их контент очищался автоматизированными процессами, и поэтому намеренно усложняют процесс входа в систему с помощью сценария.

Alex Howansky 09.08.2018 17:44

Если они предлагают API, вам будет намного лучше.

Alex Howansky 09.08.2018 17:45

Вы не трата в любое время выучили кучу классных вещей: D

IsThisJavascript 09.08.2018 17:54

@AlexHowansky, на самом деле я пытался получить доступ к их API. Однако некоторые страницы также находятся за стеной авторизации.

Michael Andrew Bentley 09.08.2018 18:00

@IsThisJavascript ха-ха, я так полагаю. И я сделал мысленную заметку, что нужно уйти и узнать больше о токенах CSRF.

Michael Andrew Bentley 09.08.2018 18:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
9
32
0

Другие вопросы по теме