在PHP中卷曲cookie问题

时间:2010-01-19 13:36:18

标签: php curl

正如我的客户需要的那样,我开发了一个通过cURl登录的代码。

  1. 登录www.web1.com并将cookie存储在cookie.txt

  2. 访问www.web2.com并使用该cookie浏览页面.txt

  3. www.web2.com

    没问题

    因此,当我想通过www.web3.com进行此操作时,会出现问题。

    www.web3.com使用会话和cookie本身,我必须收集并使用它们。

    这意味着我应该有一系列的cookies,首先来自www.web1.com,第二个来自www.web3.com,然后请求www.web3.com/somepage

    我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以执行命令行调用以从curl卷曲以将cookie保存到如下文件:

  

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

然后在提交到页面时使用这些cookie:

  

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

有关这些命令行标志的更多信息:

答案 1 :(得分:0)

您可以使用以下行获取Cookie信息:

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

使用shell_exec或exec运行此命令。获取标题信息后,您可以解析cookie信息。使用帮助程序类或编写自己的解析器 - > http://framework.zend.com/manual/en/zend.http.cookies.html(Zend_Http_Cookie :: fromString) 您可以将此信息存储在会话中而不是文本文件中。对于web3.com,还要获取cookie信息并将其保存在session或cookie.txt文件中。