0

我正在尝试在需要用户名和密码的网站之外获取一些价值形式。通常我需要先去登录页面(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;

?>

我得到了空白页。

任何想法?谢谢

4

2 回答 2

0

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

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

于 2013-02-28T17:41:03.283 回答
0

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

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

我的猜测是您遇到了 SSL 证书验证问题。但它真的可以是 20 种不同的东西。如果您可以在最初的问题中包含您的 $info 值,那也会很有帮助。

于 2013-02-28T17:49:56.467 回答