2009-08-29 26 views
1

私たちのサーバの1つで安全なWebページにアクセスしようとしています。 Webページは.htaccessで保護されたディレクトリの中にあり、ユーザ名とパスワードが必要です。 libcurlに認証リクエストを提出してファイルにアクセスできるようにしようとしています。さまざまな場所でガイダンスを見つけた後、私はうまくいくはずだと思ったものを思いついたのですが、そうではありません。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!" をエコーする必要がありますが、$結果変数は空白まで来ています。カールからエラーメッセージを戻す方法はありますか?私は何か間違っているのですか?私もCURLLAUTH_ALLを成功させずに使ったことがありますが、とにかく基本的な権限しか持っていないと思います。

答えて

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を文書化されています。

+3

ありがとうございます!それは、何らかの理由で、カールがリモートサーバー上のSSL証明書を気に入らなかったことを知る助けになりました。問題を解決するために以下のオプションを追加しました: curl_setopt($ ch、CURLOPT_SSL_VERIFYPEER、false); curl_setopt($ ch、CURLOPT_SSL_VERIFYHOST、false); – user77413

関連する問題