PHP curl - Использование переменной для CURLOPT_USERPWD

0

У меня проблема, которую я не могу узнать. У меня отлично работает функция завитка:

    function curl_get($url, array $get = NULL, array $options = array())
{
    $defaults = array(
        CURLOPT_URL => $url. (strpos($url, '?') === FALSE ? '?' : ''). http_build_query($get),
        CURLOPT_HEADER => 0,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_TIMEOUT => 4,
        CURLOPT_USERPWD => 'user:pass'
    );

    $ch = curl_init();
    curl_setopt_array($ch, ($options + $defaults));
    if( ! $result = curl_exec($ch))
    {
        trigger_error(curl_error($ch));
    }
    curl_close($ch);
    return $result;
}

Моя ошибка возникает, когда я пытаюсь использовать переменную как значение для CURLOPT_USERPWD в формате:
$key = "user:pass";

Создание CURLOPT_USERPWD => $key

Запрос не аутентифицируется вообще. Я что-то теряю здесь, когда использую переменную для аутентификации?

Теги:
curl

3 ответа

1

Эта проблема возникает, когда вы передаете значение для CURLOPT_USERPWD как $key?

  • 0
    Да, точно. Я работал над этим, просто отформатировав URL как: https://$user.':'.$pass.'@'.$url
  • 0
    Значение ключа похоже на $ key = $ user. ':'. $ pass
Показать ещё 1 комментарий
0

Также столкнулся с проблемой сегодня.

Использование CURLOPT_USERPWD в curl_setopt_array() не работает, может быть, ошибка?

Вызов curl_setopt вручную устраняет проблему:

curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
0

Вы пропустили еще один параметр в CURL (т.е.) CURLOPT_HTTPAUTH

Таким образом, ваш код должен выглядеть следующим образом:

$defaults = array(
    CURLOPT_URL => $url. (strpos($url, '?') === FALSE ? '?' : ''). http_build_query($get),
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_HTTPAUTH => CURLAUTH_ANY,
    CURLOPT_TIMEOUT => 4,
    CURLOPT_USERPWD => 'user:pass'
);
  • 0
    Спасибо что подметил это. Функция работала как показано Ошибка возникает при использовании $ key для CURLOPT_USERPWD, и я до сих пор не знаю почему.
  • 0
    я не понял тебя что и где вы использовали $ key?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню