Как передать данные POST в PHP-CGI?

Обновление:

В приступе отчаяния я сделал следующее в оболочке:

REDIRECT_STATUS=true
SCRIPT_FILENAME=/var/www/...
REQUEST_METHOD=POST
GATEWAY_INTERFACE=CGI/1.1
export REDIRECT_STATUS
export SCRIPT_FILENAME
export REQUEST_METHOD
export GATEWAY_INTERFACE
echo "test=1" | php-cgi

... и ВСЕ ЕЩЕ нет переменных $ _ POST отображаются в выходных данных из этого:



Я пытаюсь создать небольшой веб-сервер, который взаимодействует с двоичным файлом php-cgi . Однако дела идут не так хорошо. Двоичный файл php-cgi правильно обрабатывает запросы GET. Когда дело доходит до запросов POST, массив $ _ POST пуст, даже когда что-то отправляется на POST.

Я проверил заголовки HTTP, загружаемые в php-cgi двоичный файл, и они действительно включают данные POST и заголовок Content-type: application / x-www-form-urlencoded .

Что может содержать двоичный файл php-cgi увидев это там s POST-данные, включенные в запрос?


У меня прогресс, я откопал кое-что из исходного кода PHP :

(я понятия не имею, откуда вызывается эта функция.)


Прочитав ответ ниже, я попробовал:


. .. что дало результат:

NULL

... что указывает на то, что здесь работает что-то еще более странное.


Я подхожу ближе ... Я нашел эту функцию в /main/php_content_types.c :

SAPI_API SAPI_POST_READER_FUNC (php_default_post_reader)

... и, похоже, это код, который обрабатывает запросы POST.

7
задан Nathan Osman 27 October 2010 в 19:39
поделиться