Нужна помощь с аутентификацией имени пользователя и пароля в libcurl - PullRequest
2 голосов
/ 29 августа 2009

Я пытаюсь получить доступ к защищенной веб-странице на одном из наших серверов. Веб-страница находится в защищенном каталоге .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 безуспешно, но я все равно считаю, что у меня есть базовая авторизация.

1 Ответ

2 голосов
/ 29 августа 2009

Используйте 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);

Доступные коды ошибок задокументированы здесь .

...