需要有关libcurl用户名/密码验证的帮助

时间:2009-08-29 00:34:31

标签: php curl libcurl

我正在尝试访问其中一台服务器上的安全网页。该网页位于.htaccess受保护的目录中,该目录需要用户名和密码。我正在尝试让libcurl提交身份验证请求,以便它可以访问该文件。在各个地方找到一些指导之后,我想出了我认为应该起作用的东西,但事实并非如此。

$url="https://www.myurl.com/htaccess_secured_directory/file.php";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, 'myusername:mypassword');
$result = curl_exec($ch);
echo $result;

file.php文件应该只是回显“Hello World!”,但是$ result变量显示为空白。有没有办法从卷曲中获取错误消息?难道我做错了什么?我也使用CURLLAUTH_ALL但没有成功,但我相信我还是有基本的授权。

1 个答案:

答案 0 :(得分:2)

使用curl_errno()curl_error()检索错误信息,即:

$url="https://www.myurl.com/htaccess_secured_directory/file.php";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, 'myusername:mypassword');
$result = curl_exec($ch);

if(curl_errno($ch))
{
  echo 'Curl error: ' . curl_error($ch);
}
else
{    
  echo $result;
}

curl_close($ch);

可用的错误代码记录在案here