【问题标题】:Need help with libcurl username/password authentication需要有关 libcurl 用户名/密码身份验证的帮助
【发布时间】:2010-11-23 21:59:21
【问题描述】:

我正在尝试访问我们其中一台服务器上的安全网页。该网页位于需要用户名和密码的 .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 变量出现空白。有没有办法从 curl 中获取错误消息?难道我做错了什么?我也使用 CURLLAUTH_ALL 没有成功,但我相信我只是有基本的授权。

【问题讨论】:

    标签: php curl libcurl


    【解决方案1】:

    使用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

    【讨论】:

    • 谢谢!这帮助我发现 curl 出于某种原因不喜欢远程服务器上的 ssl 证书。我添加了以下选项来解决问题: curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER , false ); curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST , false );
    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多