Запуск CGI из PHP с передачей POST и GET

corda

Новичок
Запуск CGI из PHP с передачей POST и GET

Привет.

Возникла вот какая задача.
Есть бинарный CGI, который вызывается вот так:
PHP:
<form action=/cgi-bin/script.cgi?param=value method=post>
<input type=....>
</form>
То есть ему передаются и GET и POST одновременно. Мне надо его запустить из PHP и получить вывод. Использование сокетов исключено - поддержки нет и никто её не включит. А PHP должен находиться именно на этом сервере.
Максимум, что я смог:
PHP:
$request = 'param=value'; 
foreach ($HTTP_POST_VARS as $name => $value) {
    $request .= '&'.$name.'='.urlencode($value); 
}
$request = escapeshellarg($request);
putenv('REQUEST_METHOD=GET'); 
putenv('CONTENT_TYPE=application/x-www-form-urlencoded');
putenv('CONTENT_LENGTH='.strlen($request));
putenv('QUERY_STRING='.$request); 
$cmd = 'echo "'.$request.'"| /path/to/cgi';
system($cmd);
Это вообще реально сделать на PHP в данных условиях? Если да, то как?
 

corda

Новичок
Нет, я не спамер и не читер.
Можно по существу вопроса.
 

Фанат

oncle terrible
Команда форума
У тебя на своем сервере что ли?
Ну тогда поменяй метод с гет на пост.
а wget-а - тоже нет?
 

corda

Новичок
Неважно какой я метод напишу - все переменные будут все либо в GET либо в POST. А мне так не подходит.

Про wget я и не подумал, попробую.

И всё-таки, решения с простым echo нет?
 

Фанат

oncle terrible
Команда форума
почему это - все будет?
если ты путенвом путаешь все НТТР заголовки, то кто тебе мешает туде жа и содержимое запроса путнуть?
 

corda

Новичок
О каких заголовках речь?
Всё, что мне известно, куда можно запихать:
QUERY_STRING, CHARSET_SAVED_QUERY_STRING, REQUEST_URI.
Все они передают GET-параметры. Ну, можно ещё REQUEST_METHOD поменять на POST.
Куда ты предлагаешь мне запихать то, что предназначено для POST, а куда для GET в одном запросе?
 
Сверху