проблема с curl cookie в PHP - PullRequest
       4

проблема с curl cookie в PHP

0 голосов
/ 19 января 2010

по мере необходимости мой клиент разработал код для входа через cURl.

  1. войдите на сайт www.web1.com и сохраните файлы cookie в файле cookie.txt

  2. зайдите на www.web2.com и просмотрите страницу, используя этот cookie.txt

нет проблем с www.web2.com

поэтому, когда я хочу сделать это с www.web3.com, возникает проблема.

www.web3.com сам использует сеансы и файлы cookie, и мне нужно собирать и использовать их.

это означает, что у меня должно быть несколько файлов cookie, сначала с www.web1.com, затем с www.web3.com, затем запросите www.web3.com/somepage

как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 19 января 2010

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

curl -k -s -d'user=foo&pass=bar' -D- https://server1.com/login/ -o/dev/null -f

Используйте shell_exec или exec для запуска этой команды. После получения информации заголовка вы можете проанализировать информацию о куки. Используйте вспомогательный класс или напишите свой собственный анализатор -> http://framework.zend.com/manual/en/zend.http.cookies.html (Zend_Http_Cookie :: fromString) Вы можете хранить эту информацию в сеансе, а не в текстовом файле. Для web3.com также получите информацию о куки и сохраните ее в сеансе или в файле cookie.txt.

0 голосов
/ 19 января 2010

Вы можете выполнить вызов командной строки для curl из php, чтобы сохранить куки в файл, например:

curl -c '/tmp/mycookies.txt' 'http://www.site.com/login.php

Затем используйте эти куки при отправке на страницу следующим образом:

curl -b '/tmp/mycookies.txt' -d 'uname = MyLoginName & pass = MyPassword & action = login & x = 67 & y= 11 '' http://www.site.com/login.php'

Для получения дополнительной информации о следующих флагах командной строки:

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