PHP cURL位置更改

时间:2011-03-29 14:47:56

标签: php curl

我正在使用cURL来显示登录系统后面的页面内容。我能够成功登录并显示登录系统后面的第一页,但无法显示任何后续页面。

我对问题的理解是cURL遵循登录后提供的标题。因此,如果订单是login.php - > home.php,我想去account.php,我需要另一个标题指向该页面。

这是对的吗?我可以在登录后使用cURL显示其他页面的内容吗?

3 个答案:

答案 0 :(得分:3)

您可能需要保存和传输Cookie。这可以在PHP cURL中完成,如下所示:

$ch = curl_init();

// set your regular options
curl_setopt($ch, CURLOPT_URL, 'http://somedomain.com/login.php');
curl_setopt($ch, CURLOPT_POSTFIELDS, array('user'=>'foo', 'pass'=>'bar'));

// set where cookies are saved
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');

// set where cookies are retrieved from when sent to the server
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt');

// execute login
curl_exec($ch);

// do another request
curl_setopt($ch, CURLOPT_URL, 'http://somedomain.com/restricted_page.php');
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_exec($ch);

答案 1 :(得分:0)

您需要处理Cookie。会话身份验证需要它们。

从第一个电话中获取Cookie标头,并将其与所有后续电话一起发送。

答案 2 :(得分:0)

您必须知道登录页面(通常)的工作方式。当您登录某个站点时,该站点将向您发送一个会话cookie,您每次请求新页面时都会再次发送该站点cookie。因此,如果您想模拟登录,您必须存储登录返回的cookie,然后将其包含在网站的每个其他请求中。

相关问题