需要PHP Curl Mozilla LiveHttpHeaders分析

需要PHP Curl Mozilla LiveHttpHeaders分析,php,cookies,curl,http-headers,Php,Cookies,Curl,Http Headers,我试图使用PHP Curl库登录到一个站点。即使我已成功登录,我似乎无法访问登录页面之外的任何其他页面。现在我知道Cookie可能会有一些问题,但相信我,我尝试了COOKIEJAR和COOKIEFILE的所有可能组合。 我需要一些帮助来分析这组LiveHTTPHeaders信息。我担心post字段,尤其是Login.x和Login.y。它们似乎在每次登录时都会发生变化。这可能是个问题吗?如何计算随机整数分配给该值的方式?此外,是否添加了超过1个cookies?如果是这样的话,我该如何将其合并到c

我试图使用PHP Curl库登录到一个站点。即使我已成功登录,我似乎无法访问登录页面之外的任何其他页面。现在我知道Cookie可能会有一些问题,但相信我,我尝试了COOKIEJAR和COOKIEFILE的所有可能组合。 我需要一些帮助来分析这组LiveHTTPHeaders信息。我担心post字段,尤其是Login.x和Login.y。它们似乎在每次登录时都会发生变化。这可能是个问题吗?如何计算随机整数分配给该值的方式?此外,是否添加了超过1个cookies?如果是这样的话,我该如何将其合并到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
LiveHTTPHeaders登录信息:*显示在顶部。没有变化

登录后任何页面访问的LiveHTTPHeaders信息--


***注意在这种情况下多个cookie是如何发送的(我想)。我的cookiejar和cookiefile命令应该如何更改?

录制会话时,首先刷新所有Cookie,然后确保注意服务器设置Cookie的时间

通常,在登录页面或浏览器首先加载的其他页面中设置所需的cookie,然后当您发布到特定URL时,必须传递之前设置的cookie


因此,附加的跟踪不足。

这个cURL代码在过去已经足够我通过存储cookie来维护登录会话:

$ch = curl_init('https://somesecureurl.com/login/account');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/hmcookies.txt'); // cookies in this file are sent by curl with the request
curl_setopt($ch, CURLOPT_COOKIEJAR,  '/tmp/hmcookies.txt'); // upon completing request, curl saves/updates any cookies in this file

$data = curl_exec($ch);
要确保的其他事项是,cookiejar文件可由Web服务器写入,或者它具有创建该文件的权限

正如Daniel所说,一些网站可能要求您首先访问登录页面以获得一些初始cookie集,然后发布登录表单。因此,您的请求可能会:

Request login page
Post to login form
Try to access protected page

curl_setopt(CURLOPT_COOKIE,“name1=value1;name2=value2”);好的,我猜这些就是饼干的内容。所以我不需要使用cookiejar和cookiefile?你能展示一下你当前的curl代码吗?cookiefile和cookiejar的组合应该可以工作。登录的x和y只是您正在单击的按钮的坐标,它们可能没有被检查任何内容,但您可以使用它们来获取随机值it@drew:感谢fr解决x y坐标问题。我认为你是对的。至于curl代码,我仍然不能正确地完成它。。我以前也发过这方面的帖子。。谢谢你的回复。。。我读了你在curl.haxx.se上的帖子,你提到了这一点。我会记住的,仔细检查所有的饼干。嘿,非常感谢!我看到了发送给主页的标题等。。。我编辑了这篇文章。你现在能告诉我我错过了什么吗。。我使用的是几乎完全相同的curl代码uve。cookie jar将保存特定站点提供的所有cookie,无论是1还是100,您不必更改与此相关的任何内容。还是不走运?你可以在pastebin上放一些代码吗?你的代码对我来说很好,我只对URL做了一些更改,并且可以很好地登录到我的一个网站。如果您试图跨多个请求持久化登录,您可能只想删除CURLOPT_COOKIESESSION行。这告诉curl忽略它之前设置的cookies(实际上是将您注销)。但是,除了URL之外,您的代码没有任何更改,我就可以登录到一个站点。也许可以检查/tmp/hmcookies.txt文件,看看它包含什么。还要验证/tmp是否存在,以及您的用户是否可以写入。我删除了cookiesession行,但它仍然会让我注销!此外,tmp文件夹中未存储cookie文件。。它是空的。(我已授予tmp文件夹777访问权限)。尝试捕获登录post请求的输出,看看您得到了什么输出。您可能需要在该请求中关闭followlocation,但是如果登录失败,您应该在输出中看到这一点。
Request login page
Post to login form
Try to access protected page