curl从外部网站获取价值需要用户​​名和密码

时间:2013-02-28 17:36:48

标签: php curl

我想在网站外获取一些需要用户名和密码的价值表格。 通常我需要先登录页面(https://xxx.xxx.xxx/HomeAccess),然后转到https://xxx.xxx.xxx/xxx.aspx。但如果没有登录,只需转到页面xxx.aspx,我会得到错误“由于发生内部服务器错误,无法显示该页面。”;

PHP中的

我正在尝试使用此代码

<?php

$ch = curl_init();
$url = 'https://xxx.xxx.xxx/xxx.aspx';
$username ='uuuuu';
$password ='ppppp';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

print $output;

?>

我有空白页。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

我不确定如何在该网站上设置授权,但通常,当您登录时,他们会将某种访问令牌作为cookie提供,并且您可以使用该访问权限访问该网站中的任何其他页面。因此,使用curl使用用户名和密码登录登录页面,抓取cookie,然后再次卷曲到所需的页面。

同样,这一切都取决于您尝试访问的网站。您必须进行一些挖掘以找出登录的位置以及它们如何进行身份验证/授权。

答案 1 :(得分:0)

通过这样做,Curl可以给你一个很好的提示:

if(curl_exec($ch) === false)
{
    echo 'Curl error: ('.curl_error($ch).'): '.curl_error($ch);
}

我的猜测是你有SSL证书验证问题。但它确实可能是20种不同的东西。如果您可以在初始问题中包含您的$ info值,这也会有所帮助。