PHP curl无法模拟本网站http://livearchive.onlinejudge.org/的登录信息,并返回一句话,您无权查看此页面!
问问题
834 次
2 回答
2
cURL 应该能够很好地模拟登录。
确保你:
- 将数据发布到登录 URL。
- 获取登录页面以获取正确的 nonce 数据等。
- 之后存储 cookie 并将其用于进一步的请求
如何发布数据
请参阅问题的答案Passing $_POST values with cURL
如何获取正确的表单数据
使用 HTML 解析器库来解析网页并提取字段。例如,您可以使用DOMDocument,并使用getElementById
来获得您想要的形式。
如何存储 cookie 并将其用于进一步的请求
这在PHP cURL 和 cookies页面上有解释。
于 2012-08-18T11:52:05.843 回答
0
由于这只是一个问题,我希望您还需要解释而不是任何脚本。
Curl 可以完美登录到您提到的站点,但您需要正确设置参数。
您的 URL 应指向:http ://livearchive.onlinejudge.org/index.php?option=com_comprofiler&task=login并带有以下变量
username=
passwd=
op2=login
lang=english
force_session=1
return=B%3AaHR0cDovL2xpdmVhcmNoaXZlLm9ubGluZWp1ZGdlLm9yZy8%3D
message=0
loginfrom=loginmodule
cbsecuritym3=cbm_02099e1c_6e2810f8_97a3f622ba6c000cb557bd8458534f61&j2ffb0ca892d8cf58942dfbea23559ed2=1
remember=yes
Submit=Login
请注意cbsecuritym3
变量,您还需要发送 2 个 Cookie 信息,例如。mosvisitor=1; 8ca25fe06780267eef1b49296a9a99ce=249baaaba68197c9b1681e57d69c3193
如果所有这些都正确发送,您将能够登录
于 2012-08-18T14:29:47.340 回答