Получить имя пользователя, параметры пароля, переданные через curl - PullRequest
1 голос
/ 08 февраля 2011

Я пытаюсь отправить параметры имени пользователя и пароля в URL с помощью curl, и я хочу получить их.Я отправляю параметры на страницу, как показано ниже:

<?php

$curl = curl_init('http://localhost/sample.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);                         
curl_setopt($curl, CURLOPT_USERPWD, 'key:123456');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);                    
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);                          
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);                           
curl_setopt($curl, CURLOPT_USERAGENT, 'Sample Code');

$response = curl_exec($curl);                                          
$resultStatus = curl_getinfo($curl);                                   

if($resultStatus['http_code'] == 200) {
    echo $response;
} else {
    echo 'Call Failed '.print_r($resultStatus);                         
}
?>

Теперь на странице sample.php как я могу получить эти параметры?(здесь имя пользователя является ключом, пароль - 123456).

Полагаю, они должны быть доступны в массиве $ _SERVER, но они недоступны.

Ответы [ 4 ]

2 голосов
/ 08 февраля 2011

Некоторые параметры, такие как CURLOPT_USERAGENT, отправляются в заголовках HTTP и могут быть получены с использованием специальных глобальных переменных, таких как $_SERVER['HTTP_USER_AGENT'] (см. http://www.php.net/manual/de/reserved.variables.server.php).

Другие, например CURLOPT_SSL_VERIFYPEER, являются локальными для CURL и не отправляются на сервер.

1 голос
/ 28 июня 2012

вы можете найти имя пользователя и пароль в глобальном $_SERVER массиве

$_SERVER : array
(
     ....
    'PHP_AUTH_USER' => 'the_username'
    'PHP_AUTH_PW' => 'the_password'
)
1 голос
/ 08 февраля 2011

для отправки параметров на веб-страницу вы можете использовать один из двух методов GET или POST

GET - это когда параметры добавляются к имени ресурса, который вы получаете

например $url = "http://localhost/sample.php?name=" . urlencode( $value )

другой выбор через POST.сообщение отправляется на сервер как страница информации, чтобы сделать это с помощью curl, вы создаете сообщение с

curl_setopt($ch, CURLOPT_POSTFIELDS, 'name=' . urlencode( $value ) . '&name2=' . urlencode( $value2 ));

Если с другой стороны, вы говорите о заголовках, то вы можетеобращаться к ним через массив $_SERVER['headername'].

DC

1 голос
/ 08 февраля 2011

По умолчанию cURL выдает HTTP-запрос GET.В этом случае вам нужно добавить параметры к вызываемому URL:

$curl = curl_init('http://localhost/sample.php?foo=bar&baz=zoid');

In sample.php, $_GET['bar'] и $_GET['baz'] будут доступны соответственно.Если это запрос POST, который вы хотите выполнить, вам нужно установить параметры с помощью curl_setopt:

$curl = curl_init('http://localhost/sample.php');
curl_setopt($curl, CURLOPT_POSTFIELDS, 'foo=bar&baz=zoid');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...