Повторный перевод Curl пуст, curl_getinfo "Ошибка: 1" - PullRequest
1 голос
/ 17 мая 2011

Я пытаюсь получить страницу с curl с IIS-сервера, которая требует аутентификации пользователя.

curl_exec ничего не возвращает, CURLOPT_RETURNTRANSFER имеет значение true.Если CURLOPT_RETURNTRANSFER имеет значение false, curl_exec возвращает значение true.

В чем проблема?Страница ни после успешной, ни после неудачной аутентификации пуста.

$username = $_POST["acc"];
$password = $_POST["pw"];
$url = "https://secure.website.com/";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
$page = curl_exec($ch);
echo "Error: " . print_r(curl_getinfo($ch)) . "<br>";
curl_close($ch);

echo "<br>Page:<br>" . $page  . "<br>---------------------------<br>";

Вывод скрипта выглядит следующим образом:

Array ( [url] => https://secure.website.com/
        [content_type] => text/html
        [http_code] => 302
        [header_size] => 435
        [request_size] => 137
        [filetime] => -1
        [ssl_verify_result] => 20
        [redirect_count] => 0
        [total_time] => 0.187
        [namelookup_time] => 0
        [connect_time] => 0
        [pretransfer_time] => 0.046
        [size_upload] => 0
        [size_download] => 0
        [speed_download] => 0
        [speed_upload] => 0
        [download_content_length] => 0
        [upload_content_length] => 0
        [starttransfer_time] => 0.187
        [redirect_time] => 0
        [certinfo] => Array ( ) )
        Error: 1

Page:

---------------------------

curl_error не выдает ошибок.«Ошибка: 1» в конце curl_getinfo - моя единственная подсказка.Скрипт работает на других сайтах.

1 Ответ

5 голосов
/ 17 мая 2011

Обратите внимание на код состояния, который является 302 Found , означающим, что страница выполняет перенаправление.Попробуйте:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Это заставит cURL следовать за вами перенаправлениями, и должно решить эту проблему.

(Error: 1 не имеет значения, это потому, что вы делаете echo print_r().)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...