【发布时间】:2011-11-19 09:20:35
【问题描述】:
我试图使用 PHP Curl 库登录到一个站点。即使我已经成功登录,我似乎无法访问登录页面以外的任何其他页面。现在我知道 cookie 可能存在一些问题,但相信我,我尝试了所有可能的 COOKIEJAR 和 COOKIEFILE 组合。 我需要一些帮助来分析这组 LiveHTTPHeaders 信息。我担心帖子字段——尤其是 Login.x 和 Login.y。它们似乎在每次登录时都会发生变化。这可能是个问题吗?我如何弄清楚将随机整数分配给该值的方式?此外,是否添加了 1 个以上的 cookie?如果是这样,我如何将其合并到 curl 中?我是否在单个语句中使用一个 COOKIEJAR、多个或名称数量的 cookie..
我已经粘贴了下面的标题-
http://amizone.net/Amizone/default.aspx
POST /Amizone/default.aspx HTTP/1.1
Host: amizone.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://amizone.net/
Cookie: ASPSESSIONIDSSBCDQAQ=FJHPMILBALMDGIFEOOOBNFHI
Content-Type: application/x-www-form-urlencoded
Content-Length: 55
username=1596681&password=CENSORED&Login.x=14&Login.y=15
如果需要,我只会发布 cURL 代码。
主页的 LiveHTTPHeaders 信息:
GET /amizone/default.aspx HTTP/1.1
Host: amizone.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
LOGIN 的 LiveHTTPHeaders 信息:** 显示在顶部。没有变化。
登录后任何页面访问的 LiveHTTPHeaders 信息--
GET /amizone/WebForms/TimeTable/StudentTimeTableForWeek.aspx HTTP/1.1
Host: amizone.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://amizone.net/amizone/WebForms/Home.aspx
Cookie: ASP.NET_SessionId=hn5mfsre0y3b1l45nxlgzr55; UserId=127953D3849DEF71FB6CF9F55DD3BBADE48E686D24ADC87923FB6C60077ECC0362AB0C5A9C4DF194461C348DBAE6FEC861827F886FE2C17EA79155500CA4FC04EE897B7658A59DA2F286F2436F6EDD07BE2DD7DD829798F4C81ABAEFEE400B3A71078A74BF1C169BF1DA2865CC9E5968FF26ED7D; countrytabs=0; countrytabsRT=0; countrytabsRB=0
***请注意在这种情况下如何发送多个 cookie(我认为)。我的 cookiejar 和 cookiefile 命令应该如何改变?
【问题讨论】:
-
curl_setopt(CURLOPT_COOKIE, "name1=value1;name2=value2");
-
好的,我猜这些是 cookie 的内容。所以我不需要使用cookiejar和cookiefile?
-
你能显示你当前不工作的 curl 代码吗? cookiefile 和 cookiejar 的组合应该可以工作。登录的 x 和 y 只是您正在单击的按钮的坐标,它们可能不会被检查任何内容,但您可以使用 rand() 为其获取随机值
-
@drew:感谢 fr 解决 x y 坐标问题。我认为你是对的。至于 curl 代码,我仍然无法正确执行。我之前也发布过这个。stackoverflow.com/questions/7299155/php-curl-help-needed
标签: php cookies curl http-headers