0

PHP curl无法模拟本网站http://livearchive.onlinejudge.org/的登录信息,并返回一句话,您无权查看此页面!

4

2 回答 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 回答