Опубликовать значения в заголовках PHP - PullRequest
2 голосов
/ 09 июня 2010

Я хочу отправить данные на удаленную веб-страницу с моего сайта. На самом деле это может быть достигнуто через скрытые переменные формы. но по соображениям безопасности я хочу установить в качестве переменных поста в заголовке, а затем отправить на эту веб-страницу. я использую этот код

$post_data = 'var1=123&var2=456';

$content_length = strlen($post_data);

header('POST http://localhost/testing/test.php HTTP/1.1');

header('Host: localhost');

header('Connection: close');

header('Content-type: application/x-www-form-urlencoded');

header('Content-length: ' . $content_length); 

header($post_data);

но мой код не работает должным образом. помоги мне ...

Ответы [ 4 ]

2 голосов
/ 09 июня 2010

Вы пытаетесь поместить запрос заголовков в ответ . Клиент просто не знает, что с ним делать.

То, чего вы пытаетесь достичь, невозможно.

Какую задачу вы пытаетесь выполнить? Там может быть другой путь.

2 голосов
/ 09 июня 2010

POST-данные формируют тело HTTP-запроса, это не заголовок, а метод заголовка используется при создании HTTP ответов .

.создания POST-запроса из PHP с использованием библиотеки curl.

1 голос
/ 04 декабря 2013

Единственный способ перенаправить заголовок POST - перенаправление HTTP 1.1 с 307/308

307 Временное перенаправление

header('HTTP/1.1 307 Redirect');
header('Location: target.php', false, 307);

308 Постоянное перенаправление

header('HTTP/1.1 308 Redirect');
header('Location: target.php', false, 308);

!!!Работает только в PHP, если код переадресации установлен таким образом 2 раза !!!Если вы только делаете 2-ю строку.PHP сделал нормальное перенаправление 302.

Клиент получает сообщение из браузера, если принять это перенаправление, из соображений безопасности.

1 голос
/ 09 июня 2010

Если вы пытаетесь отправить запрос на удаленный сервер, вам нужно использовать инструмент, подобный cUrl . Вот пример:

// Create a curl handle to a non-existing location
$ch = curl_init('http://localhost/testing/test.php');

// Set options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Execute
$page = curl_exec($ch); 

В качестве альтернативы, если вы действительно хотите поместить данные в заголовки, вы можете установить пользовательские заголовки, используя что-то вроде этого:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('field: value', 'field2: value') );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...