CURL захватить информацию и войти с ней - PullRequest
0 голосов
/ 24 августа 2011

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

Это возможно?

надеюсь, вы понимаете

Спасибо

---- ---- редактировать если страница перезагрузится, в скрытом поле появляется новый ключ .. а старый не работает

Ответы [ 3 ]

3 голосов
/ 24 августа 2011

Да, это возможно.Основные шаги будут:

1. Fetch form
2. Run returned data through DOMdocument to extract the hidden form field's value
3. Post login data, including the key value from step #2
4. ???
5. Profit
0 голосов
/ 24 августа 2011

Да, это возможно.

Вы можете даже захватить страницу с помощью

$ source = htmlspecialchars (file_get_contents ($ url));

Затем используйте strpos, substr и т. Д., Чтобы получить информацию об этом поле (это самый простой способ)

Затем просто поместите его с помощью этой функции

$ urltopost = $ url

$ datatopost = массив ($ name => $ value);

$ ch = curl_init ($ urltopost);

curl_setopt ($ ch, CURLOPT_POST, true);

curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ datatopost);

curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);

$ returndata = htmls_execars (htmlspecialexec) (htmlspecialexec) (htmlspecialexec) (htmlspecialexec) (curt_setualscars) (htmlspecialexec) (htmlspecialexec) (curt_setualscars) (htmlspecialc) (curt_setualscars) (htmlspecialexec) (curt_setualscars) (чч

0 голосов
/ 24 августа 2011

Да, это так.

  1. Загрузить содержимое страницы в переменную (например, $contents = file_get_contents(...);).
  2. Теперь проанализируйте его, чтобы получить скрытый ключ (например, $matches = preg_match(..., ...); $key = $matches[1];).
  3. Теперь отправьте запрос, используя скрытый ключ (например, $context = streamcontextcreate(...); $data = file_get_contents(..., false, $context);).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...